我正在编写一些使用error_log()
进行调试的代码。问题是,由于某种原因,输出中的所有换行符都显示为文字'n
字符串,因此没有实际的换行符(使得几乎不可能理解复杂的数组)。
我尝试使用error_log
函数的var_export
和print_r
,两者都导致了相同的结果:'n
分散在整个文本块。我甚至尝试做str_replace
'n
到PHP_EOL
都没有成功。我做错了什么?
澄清一下:'n
字符串出现在控制台错误日志查看器、texttedit和终端中。
编辑
只是想提前注意到,是的,我知道你需要双引号'n
字符串为它们显示为换行符。然而,我正在处理print_r
或var_export
的输出(检查数组),所以这并没有真正帮助我(我认为?)。
作为一种替代方法,您可以通过sed
处理/替换''n',因此它们在控制台上显示为新行:
$ tail -f error_log | sed "s/'''n/''n/g"
Mac OS X
# WARNING - don't just copy+paste (see comment below)
$ tail -f error_log | sed "s/'''n/^M^L/g"
注意:在Mac OS X中,行尾是CRLF
(回车换行),而在LINUX系统中只有LF
(换行)
注2:Mac OS X要在Terminal输出^M
,请按Control+V Control+M
,要输出^L
,请按Control+V Control+L
显然,这个问题与您的操作系统无关。PHP错误日志和换行符
…你应该可以在Debian上修改php.ini中的error_log指令,使其指向一个文件。如果未定义,它将通过不支持多行的syslog。