php中strpos函数与mb

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9021.html