我有一个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上运行这个文件,但我认为这不应该改变ASCII 0x0a
是\n
字符的事实。你知道为什么$line
不能等同于'0\n'
吗?我是PHP新手,所以这个问题很可能是一些明显的语法问题。谢谢!
发布于 2019-05-28 02:42:31
您必须使用双引号而不是单引号,以便将"\n“解释为换行符。使用单引号时,字符被解释为'\‘+ 'n’字符。
if ($line == "0\n") {
echo "equal\n";
} else {
echo "not equal\n";
}
https://stackoverflow.com/questions/56330881
复制相似问题