我有一个PHP脚本,该脚本应根据名为info.txt的文件的第一行为'0'或其他方式来执行某些操作。我的PHP文件:
<?php
$handle = fopen('info.txt','r');
$line = fgets($handle);
fclose($handle);
// print detailed contents of $line
foreach(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上运行此文件,但我认为这不应改变ASCII 0x0a
是\n
字符这一事实。为什么$line
的评估结果不等于'0\n'
?我是PHP的新手,所以问题很可能是一些明显的语法问题。谢谢!
答案 0 :(得分:0)
您必须使用双引号而不是简单的引号,以便将“ \ n”解释为换行符。用单引号将字符解释为'\'+'n'字符。
if ($line == "0\n") {
echo "equal\n";
} else {
echo "not equal\n";
}