php – mb_strpos vs strpos,有什么区别?

前端之家收集整理的这篇文章主要介绍了php – mb_strpos vs strpos,有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是的我知道.当我们使用多字节char时,我们应该使用mb_ *函数.但是当我们使用strpos时?
我们来看看这段代码(保存在utf-8中)
var_dump(strpos("My symbol utf-8 is the €.","\xE2\x82\xAC")); // int(23)

使用mb_strpos有区别吗?是不是让这项工作成绩相同?毕竟,不是strpos寻找一个字符串(多个字节)?是否有理由使用strpos?

对于UTF-8,匹配字节序列与匹配字符序列完全相同.

所以他们都会在完全相同的点找到针,但是mb_strpos在针之前计算完整的UTF-8字节序列,其中strpos计算任何字节.因此,如果您的字符串具有另一个多字节UTF-8序列,则结果会有所不同:

strpos("My symbolö utf-8 is the €.","€") !== mb_strpos("My symbolö utf-8 is the €.","€","UTF-8")

但:

strpos("My symbol utf-8 is the €.","€") === mb_strpos("My symbol utf-8 is the €.","UTF-8")

猜你在找的PHP相关文章