PHP之mb_strpos使用

mb_strpos

  • (PHP 4 >= 4.0.6, PHP 5, PHP 7)
  • mb_strpos — Find position of first occurrence of string in a string
  • mb_strpos — 查找字符串在另一個字符串中首次出現(xiàn)的位置

Description

int mb_strpos ( 
    string $haystack , 
    string $needle [, 
    int $offset = 0 [, 
    string $encoding = mb_internal_encoding() ]] 
    )
//Finds position of the first occurrence of a string in a string.
// 查找 string 在一個 string 中首次出現(xiàn)的位置缨伊。

//Performs a multi-byte safe strpos() operation based on number of characters. The first character's position is 0, the second character position is 1, and so on.
// 基于字符數(shù)執(zhí)行一個多字節(jié)安全的 strpos() 操作。 第一個字符的位置是 0,第二個字符的位置是 1沐鼠,以此類推旨剥。

Parameters

haystack

  • The string being checked.
  • 要被檢查的 string芒涡。

needle

  • The string to find in haystack. In contrast with strpos(), numeric values are not applied as the ordinal value of a character.
  • 在 haystack 中查找這個字符串泽篮。 和 strpos() 不同的是坊秸,數(shù)字的值不會被當做字符的順序值唐断。

offset

  • The search offset. If it is not specified, 0 is used. A negative offset counts from the end of the string.
  • 搜索位置的偏移选脊。如果沒有提供該參數(shù),將會使用 0脸甘。負數(shù)的 offset 會從字符串尾部開始統(tǒng)計恳啥。

encoding

  • The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.
  • encoding 參數(shù)為字符編碼。如果省略丹诀,則使用內(nèi)部字符編碼角寸。

Return Values

  • Returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.
  • 返回 string 的 haystack 中 needle 首次出現(xiàn)位置的數(shù)值菩混。 如果沒有找到 needle,它將返回 FALSE扁藕。

Example

<?php
/**
 * Created by PhpStorm.
 * User: zhangrongxiang
 * Date: 2018/2/2
 * Time: 下午11:16
 */

$str = "Hello World! Hello PHP";
$pos = mb_strpos( $str, "Hello", 0, mb_internal_encoding() );
echo $pos . PHP_EOL;//0
$pos = mb_strpos( $str, "Hello", 2, mb_internal_encoding() );
echo $pos . PHP_EOL;//13

function mb_str_replace( $haystack, $search, $replace, $offset = 0, $encoding = 'auto' ) {
    $len_sch = mb_strlen( $search, $encoding );
    $len_rep = mb_strlen( $replace, $encoding );
    
    while ( ( $offset = mb_strpos( $haystack, $search, $offset, $encoding ) ) !== false ) {
        $haystack = mb_substr( $haystack, 0, $offset, $encoding )
                    . $replace
                    . mb_substr( $haystack, $offset + $len_sch,
                $le = mb_strlen( $haystack ) - mb_strlen( $search ) + mb_strlen( $replace ),
                $encoding );
        //echo $le.PHP_EOL;
        $offset = $offset + $len_rep;
        if ( $offset > mb_strlen( $haystack, $encoding ) ) {
            break;
        }
    }
    
    return $haystack;
}

$replace = mb_str_replace( "hello world !hello world !hello world !hello world !", "hello", "hi" );
echo $replace . PHP_EOL; //hi world !hi world !hi world !hi world !

//hi PHP !hi PHP !hi PHP !hi PHP !
echo mb_str_replace( $replace, "world", "PHP" ) . PHP_EOL;
echo mb_str_replace( $replace, " ", "-" ) . PHP_EOL;

//PHP是世界上最好的語言????????????
echo mb_str_replace( "PHP是世界上最好的語言????????????", '??', '??', 0, mb_internal_encoding() ) . PHP_EOL;
echo mb_str_replace( "112233445566", '22', '00' ) . PHP_EOL;//110033445566
echo mb_str_replace( '????????', '??', '??1', 2, mb_internal_encoding() ) . PHP_EOL;
echo mb_str_replace( '1111', '111', '0', 1 ) . PHP_EOL;//10
echo mb_strlen( '????????' ) . PHP_EOL;//4

//代碼開發(fā)代碼
echo mb_str_replace( '軟件開發(fā)軟件', '軟件', '代碼' ,0,mb_internal_encoding()) . PHP_EOL;
//代碼開發(fā)  //todo??
echo mb_str_replace( '軟件開發(fā)軟件', '軟件', '代碼' ) . PHP_EOL;

文章參考

轉載注明出處

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沮峡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子亿柑,更是在濱河造成了極大的恐慌邢疙,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件望薄,死亡現(xiàn)場離奇詭異疟游,居然都是意外死亡,警方通過查閱死者的電腦和手機痕支,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門颁虐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卧须,你說我怎么就攤上這事另绩。” “怎么了花嘶?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椭员。 經(jīng)常有香客問我侍芝,道長竭贩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任浩峡,我火速辦了婚禮翰灾,結果婚禮上稚茅,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好晚凿,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布情组。 她就那樣靜靜地躺著荆责,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柑营,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天蚁孔,我揣著相機與錄音杠氢,去河邊找鬼绞旅。 笑死因悲,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的视哑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼誊涯,長吁一口氣:“原來是場噩夢啊……” “哼挡毅!你這毒婦竟也來了?” 一聲冷哼從身側響起暴构,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤跪呈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后取逾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耗绿,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年砾隅,在試婚紗的時候發(fā)現(xiàn)自己被綠了误阻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡晴埂,死狀恐怖究反,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情儒洛,我是刑警寧澤精耐,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站琅锻,受9級特大地震影響卦停,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恼蓬,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一惊完、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滚秩,春花似錦专执、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攀痊。三九已至,卻和暖如春拄显,著一層夾襖步出監(jiān)牢的瞬間苟径,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工躬审, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棘街,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓承边,卻偏偏與公主長得像遭殉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子博助,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1险污、判斷一個變量是否存在的函數(shù):isset判斷一個變量是否為null的函數(shù):is_null判斷一個變量是否為空的函...
    jianghu000閱讀 1,713評論 1 4
  • 第四章 字符串操作與正則表達式 1.mail()函數(shù) bool mail (string to, string s...
    梁燁端木閱讀 774評論 0 0
  • 01. 孤單 是一個人獨享世界繁華 卻無法輕聲訴與你聽 02. 愛你 像一個長途跋涉的旅人 戀上路邊一株白蘭 03...
    也不二閱讀 343評論 17 17
  • 母親 每一句默念蛔糯, 都禁不住熱淚盈眶。窖式。蚁飒。 每一次呢喃, 都忍不了心底輕顫萝喘。淮逻。。 遍地的苦丁花蜒灰, 多像媽媽弦蹂, 挨過...
    暖玉123閱讀 183評論 0 0
  • 希臘的午夜降臨了平凡的生活 伍爾夫說肩碟,她有一個自己的房間 愛了自己强窖,再去愛別人 我們都自覺重要 可最終只是出現(xiàn)和消...
    白咖啡鐘文萍閱讀 247評論 0 3