关于strpos函数的一些疑问
2012-03-19 10:49
337 查看
前段时间在群里有个网友问了这样一个问题。
请问:
当时我想也没想就说是0,后来结果却是1
因为我原来看过PW程序的相关的应用 找到了这段类似的代码:
我翻了一下手册,上面这么说:
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
简单来说呢其实就是两个问题,一个是文件编码问题,一个是具体的函数参数的编码问题,注意到这两点就可以了。
请问:
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
简单来说呢其实就是两个问题,一个是文件编码问题,一个是具体的函数参数的编码问题,注意到这两点就可以了。
相关文章推荐
- 关于c++虚函数及访问基类私有函数的实践及一些疑问
- 《学习opencv》笔记——关于一些绘图的函数
- 关于获取文件路径,查找文件是否存在,创建文件的一些函数
- 关于定位的一些疑问
- 关于Oracle的一些函数
- php 关于文件夹的一些封装好的函数
- 关于人类视觉图像分割的一些疑问
- PHP脚本语言中关于箭号(->)在程序中的解释及strpos()函数的讲解摘要
- 【File】Android中关于内部存储的一些重要函数
- 关于函数调用中参数传递的一些思考
- 关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)
- 关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。
- 关于寻路算法的一些思考(2):Heuristics 函数
- 关于MFC的一些疑问
- 关于C语言中一些常用函数的说明
- 关于Qt获取界面的一些函数的笔记
- php里关于session的一些函数
- 关于getchar()函数的一些看法
- 关于“静态变量不能跨函数使用”的一个疑问
- 《学习opencv》笔记——关于一些绘图的函数