1.txt的内容:
这是测试文件
PHP代码如下:
1、对ASP内核代码进行DLL封装,从而大大提高了用户的访问速度和安全性;2、采用后台生成HTML网页的格式,使程序访问速度得到进一步的提升;3、用户可发展下级会员并在下级购买商品时获得差额利润;4、全新模板选择功能;5、后台增加磁盘绑定功能;6、后台增加库存查询功能;7、后台增加财务统计功能;8、后台面值类型批量设定;9、后台财务曲线报表显示;10、完善订单功能;11、对所有传输的字符串进行安全
立即学习“PHP免费学习笔记(深入)”;
<?PHP
//无法得出结果
echo strpos(file_get_contents("1.txt"), "测试");
//输出正确结果:6
echo strpos("这是测试文件", "测试");
?>
以上代码执行的时候,并没有能成功找到"测试"在1.txt文件中的位置。
回复内容:
1.txt的内容:
这是测试文件
PHP代码如下:
立即学习“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()函数看一下你的PHP文件的工作目录。
执行php脚本的工作目录,恐怕并不像你想象的那样,总是在php脚本同一个目录下的。
最简单的,一行Shell命令就打破这个错误认知:/usr/bin/env php /some/other/dir/script.php










