是的我知道.当我们使用多字节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 – mb_strpos vs strpos,有什么区别?的更多相关文章

  1. php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创

    这篇文章主要介绍了php使用strpos判断字符串中数字类型子字符串出错的解决方法,结合具体问题分析了strpos函数针对数字类型子字符串进行判断时的注意事项及类型转换处理技巧,需要的朋友可以参考下

  2. PHP中strpos、strstr和stripos、stristr函数分析

    这篇文章主要为大家详细介绍了PHP中strpos、strstr和stripos、stristr函数源码,感兴趣的朋友可以参考一下

  3. php – strpos用两个单词来查找

    我在stackoverflow上找到了这个例子:但是如何让它搜索两个单词.我需要这样的东西:如果$a包含单词“are”或“be”或者两者都包含echo“contains”;我试过xor和||只需单独检查两个单词并使用boolean或-运算符检查$a中是否包含其中一个或两个:请注意,由于or-operator,如果第一个已经显示$a包含’are’,则不执行第二次检查.

  4. PHP字符串不包含

    我想要做的是显示消息如果当前链接不包含单词“index”或“/?”我发现这样做直接相反:此代码在没有“索引”或“/?”在链接中.BTW我已经尝试了所有的组合:!==,但它似乎不适用于我.我需要一种没有代码中的“else”的方法,否则我可以改变回声.应该显示1,如果没有index.PHP或/?

  5. PHP缺少mb_strpos函数?

    我收到此错误:这很奇怪,因为mb_strpos()是在PHP4中引入的,而我正在运行PHP5.3.3任何其他人遇到这样的事情并知道如何解决它?我搜查了,我无法弄明白.PS.我正在运行centOS5.MBString不是PHP中的默认扩展,您必须安装它如果你正在运行linux试试作为root用户要么在Windows上你必须编辑PHP.ini才能使用扩展dll库注意:PHP5仍然支持mb_strpos

  6. php – 如何使用strpos来确定输入字符串中是否存在字符串?

    在上面的代码中,当文件名不包含文本字符串“my_upgrade”时,我试图消除脚本.但是,在给出的示例中,它不应该死,因为“my_upgrade(1).zip”包含字符串“my_upgrade”.我失踪了什么如果没有找到字符串,strpos返回false,如果在开始时找到,则返回0.使用identityoperator来区分两个:顺便说一下,这个事实记录在officialdocumentation

  7. php – 什么是python相当于strpos($elem,“text”)!== false)

    什么是python相当于:未找到时返回-1:当找不到时会引发ValueError:要简单地测试一个子串是否在字符串中,请使用:这相当于以下PHP:从http://www.php2python.com/wiki/function.strpos/

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

    是的我知道.当我们使用多字节char时,我们应该使用mb_*函数.但是当我们使用strpos时?我们来看看这段代码使用mb_strpos有区别吗?是不是让这项工作成绩相同?毕竟,不是strpos寻找一个字符串?是否有理由使用strpos?对于UTF-8,匹配字节序列与匹配字符序列完全相同.所以他们都会在完全相同的点找到针,但是mb_strpos在针之前计算完整的UTF-8字节序列,其中strpos计算任何字节.因此,如果您的字符串具有另一个多字节UTF-8序列,则结果会有所不同:但:

  9. PHP中的Strpos问题

    Strpos不能与int一起使用,因此您需要将ID转换为字符串.尝试这个:

  10. PHP检查字符串是否包含字母

    我正在创建一个登录名,并希望允许我的用户通过用户名或电子邮件登录.我如何检查一个字符串是否包含一个字母,在这种情况下@所以我可以正确处理它.我会使用strstr还是strpos?你可以使用其中之一.由于@不应该出现在开头,你甚至不需要strpos结果booleanization解决方法.如果你想断言它是一个有效的电子邮件地址,那么也试试

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部