您的位置:首页 > 其它

关于strpos函数的一些疑问

2012-03-19 10:49 337 查看
前段时间在群里有个网友问了这样一个问题。

请问:
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

简单来说呢其实就是两个问题,一个是文件编码问题,一个是具体的函数参数的编码问题,注意到这两点就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: