首页 > 编程开发 > PHP    日期:2019-10-08 / 来自互联网 / 浏览

php中可以使用strpos函数与mb_strpos函数获取指定的字符串在别一个字符串中首次出现的位置,也可以使用它们判断一串字符串中是否包含别一个字符串。虽然它们的作用相同,但是在输出的结果上却有很大的差别,那么下面就说一说php中strpos函数与mb_strpos函数的差别。

strpos函数与mb_strpos函数区分比较

代码1:

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

输出结果:3   3

注:在strpos()函数与mb_strpos()函数在一串英文字符串下,查到同一个字符串返回的结果是一样的。

代码2:

<?php
header("Content–type:text/html;chartset=utf-8"); 
$str = '免费资源网freexyz.cn';
echo strpos($str,'niao');
echo '<br/>';
echo mb_strpos($str,'niao');
?>

输出结果:21  9

注:

1、在上面的测试代码中,声明了面页为utf-8的编码方式

2、一个汉字在uft-8编码下占3个字节,一个字母占一个字节

3、strpos()返回的按字节返回的位置,mb_strpos()是按字数返回的位置

4、可以参考代码3,可以很直观的查看

代码3:

<?php
header("Content–type:text/html;chartset=utf-8"); 
$str = '免费资源网freexyz.cn';
echo strpos($str,'博客');
echo '<br/>';
echo mb_strpos($str,'博客');
?>

输出结果:12  4

注:

1、strpos()按字节返回,一个汉字三个字节,并从0开始,所以为12

2、mb_strpos()按字数返回,并从0开始的,所以返回的是4

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章