为什么PHP将“\ r \ n”添加到空string?

我试图在PHP中实现一个简单的服务。 该服务需要将string返回给某些请求。 但是,当我尝试回显string时,PHP以某种方式将\r\n添加到string的开头。 我正在使用echo来输出响应。

我试图回应一个空格字符:

 $test = ' '; echo $test; 

在回应中我还是得到'\r\n'

我试过header('Content-type: text');$string = preg_replace("\r\n", "", $string); ,但我仍然在回应中获得新的线。

我是PHP的新手,所以如果这是一种概念,有人可以给我提供信息的指针,我可以在那里读到它吗?

有可能这个字符在你的源代码中,例如你的脚本的末尾,比如: ?>\r\n

最佳做法是不要在每个文件中包含最终的?>以避免意外输出。

这个build议在PSR-2编码风格指南中。

closures?>标签务必从只包含PHP的文件中省略。

这也在手册中 。

如果文件是纯PHP代码,则最好在文件末尾省略PHP结束标记。 这样可以防止在PHP结束标记之后添加意外的空白或新行,这可能会导致不必要的效果,因为当程序员无意在脚本中的任何位置发送输出时,PHP将开始输出缓冲。