发现一个strpos和stripos函数的一个大坑

日常开发过程中,我们会遇到各种各样的坑,有些坑是自己挖的,有写坑是程序自带的,所以打铁还得自身硬

最新在开发中就遇到了一个php自带函数strpos的问题,明明字符串里面包含一个参数,但是结果一直是0,排查半天最后发现是函数第二个参数的问题


先来看看这个函数的用法:

strpos(string,find,start)


strpos() 函数查找字符串在另一字符串中第一次出现的位置(区分大小写)。

注释:strpos() 函数是区分大小写的,且该函数是二进制安全的。


重点来了:如果第二个参数是数字的话,要用引号引起来,不然查询不到结果

例如:strpos("测试数字12,哈哈",12)这种是没有结果的,这样strpos("测试数字12,哈哈","12")这样参会返回结果


相信他的兄弟函数也会存在类似的问题,大家使用的时候要注意了!

  • stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
  • strripos() -查找字符串在另一字符串中最后一次出现的位置(不区分大小写)