1.txt的内容:
这是测试文件
PHP代码如下:
<?PHP //无法得出结果 echo strpos(file_get_contents("1.txt"), "测试"); //输出正确结果:6 echo strpos("这是测试文件", "测试"); ?>
以上代码执行的时候,并没有能成功找到"测试"在1.txt文件中的位置。
业精于勤,荒于嬉;行成于思,毁于随。
一看到txt就知道是编码问题了,测试是在PHP文件中,所以是PHP文件的编码(应该是UTF-8),txt文件肯定是用默认的记事本造的,是GBK编码的了。
测试
file_get_contents("1.txt")
getcwd()
/usr/bin/env php /some/other/dir/script.php
一看到txt就知道是编码问题了,
测试
是在PHP文件中,所以是PHP文件的编码(应该是UTF-8),txt文件肯定是用默认的记事本造的,是GBK编码的了。file_get_contents("1.txt")
的内容搞到一个变量里,看一下究竟是什么。getcwd()
函数看一下你的PHP文件的工作目录。执行php脚本的工作目录,恐怕并不像你想象的那样,总是在php脚本同一个目录下的。
最简单的,一行Shell命令就打破这个错误认知:
/usr/bin/env php /some/other/dir/script.php