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 — 查找字符串在另一個(gè)字符串中首次出現(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 在一個(gè) 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í)行一個(gè)多字節(jié)安全的 strpos() 操作。 第一個(gè)字符的位置是 0,第二個(gè)字符的位置是 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 中查找這個(gè)字符串。 和 strpos() 不同的是,數(shù)字的值不會(huì)被當(dāng)做字符的順序值。
offset
The search offset. If it is not specified, 0 is used. A negative offset counts from the end of the string.
搜索位置的偏移。如果沒有提供該參數(shù),將會(huì)使用 0。負(fù)數(shù)的 offset 會(huì)從字符串尾部開始統(tǒng)計(jì)。
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是世界上最好的語(yǔ)言