PHP多字节字符串函数

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP多字节字符串函数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
今天我遇到了PHP函数strpos()的一个问题,因为它返回FALSE,即使正确的结果显然为0.这是因为一个参数是用UTF-8编码的,但另一个参数(原点是HTTP GET参数)显然不.

现在我注意到使用mb_strpos函数解决了我的问题.

我现在的问题是:明智地使用PHP多字节字符串函数来避免将来出现这些问题吗?我应该避免使用传统的strpos,strlen,ereg等功能吗?

注意:我不想PHP.ini中设置mbstring.func_overload全局,因为这会在使用PEAR库时导致其他问题.我使用的是PHP4.

这取决于您使用的字符编码.在单字节字符编码或UTF-8(字符内的单个字节永远不会被误认为是另一个字符)中,只要您搜索的字符串和您用于搜索的字符串相同编码然后你可以继续使用常规字符串搜索功能.

如果您使用UTF-8以外的多字节编码,这不会阻止字符中的单个字节像其他字符一样出现,那么使用常规字符串搜索功能进行字符串搜索绝对不安全.你可能会发现误报.这是因为PHP在strpos等函数中的字符串比较是按字节进行的,除了专门为止出现此问题而设计的UTF-8外,多字节编码还存在以下问题:字符中的任何后续字节都由多个字节可以匹配不同字符的一部分.

如果您正在搜索的字符串和您要搜索的字符串具有不同的字符编码,则始终需要进行转换.否则,您会发现对于在其他编码中表示不同的任何字符串,它将始终返回false.您应该对输入进行此类转换:决定应用程序将使用的字符编码,并在应用程序中保持一致.只要您以不同的编码接收输入,就可以进行转换.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP多字节字符串函数全部内容,希望文章能够帮你解决PHP多字节字符串函数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。