我正在编写一些使用error_log()进行调试的代码。问题是,由于某种原因,输出中的所有换行符都显示为文字\n字符串,因此没有实际的换行(因此几乎不可能理解复杂数组)。
我尝试在var_export函数和print_r函数中同时使用error_log,结果都是一样的:一个带有\n的文本块散布在各处。我甚至试着做str_replace \n to PHP_EOL,但没有成功。我做错了什么?
澄清:\n字符串出现在控制台错误日志查看器、TextEdit和终端中。
编辑
只是想事先注意一下,是的,我知道您需要双引号\n字符串才能显示为换行。但是,我正在处理来自print_r或var_export的输出(用于检查数组),因此这对我没有太大帮助(我认为?)。
发布于 2011-11-30 00:00:41
显然,这个问题与您的操作系统无关。参见这个问题:PHP error log and newline chars
...you应该能够将Debian上的php.ini中的error_log指令更改为指向文件。如果这是未定义的,它将通过不支持多行的syslog。
。
发布于 2012-06-18 07:13:40
作为另一种选择,您可以通过sed处理/替换'\n‘,这样它们就像控制台中的新行一样显示:
Linux
$ tail -f error_log | sed "s/\\\n/\\n/g"Mac
# WARNING - don't just copy+paste (see comment below)
$ tail -f error_log | sed "s/\\\n/^M^L/g"注意:在Mac中,一行的末尾是CRLF (载波返回行源),而在LINUX系统中只有LF (Line )
注2:在Mac中输出终端中的^M,按Control+V Control+M,输出^L,按Control+V Control+L
https://stackoverflow.com/questions/8319123
复制相似问题