关于strpos函数的一些疑问

来源:互联网 发布:货车拉货用什么软件 编辑:程序博客网 时间:2024/05/02 00:29

前段时间在群里有个网友问了这样一个问题。

请问:

echo strpos("非工",'枪');
输出是1还是0?

当时我想也没想就说是0,后来结果却是1

因为我原来看过PW程序的相关的应用 找到了这段类似的代码:

if (strpos("非工", '枪') !== false) {echo 'yes~';}
结果也返回 'yes~'

我翻了一下手册,上面这么说:

strpos() 函数返回字符串在另一个字符串中第一次出现的位置。

如果没有找到该字符串,则返回 false。


继续找,在网上看到了相关的回复:

是字符编码的问题,php源文件编码跟网站是否一致,提示最好使用mbstring或者iconv,strxxx处理gbk编码的中文可能会有问题

同时还有几下的解决办法:

PHP文件的编码肯定不是UTF-8.解决办法有以下几种:

  • 文件另存为UTF-8编码
  • “首”字mb_convert_encoding成UTF-8(具体针对的是$pos = mb_strpos($tmp_content,"首",1,'utf-8');这个代码)
  • file_get_contents的内容转换成GBK再strpos
来自:http://bbs.phpchina.com/thread-231248-1-1.html

简单来说呢其实就是两个问题,一个是文件编码问题,一个是具体的函数参数的编码问题,注意到这两点就可以了。

原创粉丝点击