我有一个 PHP 脚本,它应该根据名为 info.txt 的文件的第一行是“0”还是其他内容来执行某些操作。我的PHP文件:<?php$handle = fopen('info.txt','r');$line = fgets($handle);fclose($handle);// print detailed contents of $lineforeach(str_split($line) as $chr) { printf("[%02x] %s <br />",ord($chr),$chr);}if ($line == '0\n') { echo "equal";} else { echo "not equal";}?>我在 stackoverflow 上的另一个答案上得到了 foreach 循环,它$line按字符拆分并打印字符的代码及其评估结果。当我运行这个文件时,输出是:[30] 0 [0a] not equal看起来 info.txt 的第一行0\n就像我理解的那样,0x0a应该与\n. 我在 Mac OS X 上运行这个文件,但我认为这不应该改变 ASCII0x0a是\n字符的事实。任何想法为什么$line不评估为等于'0\n'?我是 PHP 的新手,所以问题很可能是一些明显的语法问题。谢谢!
1 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
您必须使用双引号而不是简单的引号,以便“\n”被解释为换行符。使用单引号,字符被解释为 '\' + 'n' 个字符。
if ($line == "0\n") {
echo "equal\n";
} else {
echo "not equal\n";
}
- 1 回答
- 0 关注
- 202 浏览
添加回答
举报
0/150
提交
取消