国产视频appphp中可以使用strpos函數與mb_strpos函數獲取指定的字符串在別一個字符串中首次出現的位置,也可以使用它們判斷一串字符串中是否包含別一個字符串。雖然它們的作用相同,但是在輸出的結果上卻有很大的差別,那么下面就說一說php中strpos函數與mb_strpos函數的差別。

php中strpos函數與mb_strpos函數的區別

strpos函數與mb_strpos函數區分比較

代碼1:

<?php
$str = 'feiniaomy.com';
echo strpos($str,'niao');
echo '<br/>';
echo mb_strpos($str,'niao');
?>

輸出結果:3   3

国产视频app注:在strpos()函數與mb_strpos()函數在一串英文字符串下,查到同一個字符串返回的結果是一樣的。

代碼2:

<?php
header("Content–type:text/html;chartset=utf-8"); 
$str = '飛鳥慕魚博客feiniaomy.com';
echo strpos($str,'niao');
echo '<br/>';
echo mb_strpos($str,'niao');
?>

輸出結果:21  9

注:

1、在上面的測試代碼中,聲明了面頁為utf-8的編碼方式

2、一個漢字在uft-8編碼下占3個字節,一個字母占一個字節

国产视频app3、strpos()返回的按字節返回的位置,mb_strpos()是按字數返回的位置

4、可以參考代碼3,可以很直觀的查看

代碼3:

<?php
header("Content–type:text/html;chartset=utf-8"); 
$str = '飛鳥慕魚博客feiniaomy.com';
echo strpos($str,'博客');
echo '<br/>';
echo mb_strpos($str,'博客');
?>

輸出結果:12  4

注:

1、strpos()按字節返回,一個漢字三個字節,并從0開始,所以為12

国产视频app2、mb_strpos()按字數返回,并從0開始的,所以返回的是4