php中strpos函数与mb_strpos函数的区别

过去的习惯,决定今天的你,所以,过去的懒惰,决定你今天的一败涂地。人来到这世界后,命运注定了他必须要拼搏,奋斗,坚持,勇敢地走下去,走出属于自己的道路,没有人能不劳而获。

php中可以使用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

注:在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个字节,一个字母占一个字节

3、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

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

本文php中strpos函数与mb_strpos函数的区别到此结束。没有我为您掌灯,您在往返家的路上,会觉得难过吗?小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
PHP性能优化案例分享

PHP实现短信验证码的发送次数限制

PHP中的异常处理机制深入讲解

PHP常见七种算法合集代码实例

PHP微信扫描二维码关注公众号后自动登录第三方网站