通过 PHP 过滤字符串中的换行符,通常会这样操作:
<?php
$out = str_replace(array('rn', 'r', 'n'), '', $out);
PHP 提供三种定义字符串的方法:单引号、双引号、本地文档(英文叫做 here document 或者 heredoc)。
单引号:
使用单引号是最高效的方法,因为 PHP 不会检查单引号字符串中的内置变量和转义序列,需要转义的字符只有反斜杠和单引号本身。
双引号:
会检查内置变量和转义序列,但不能识别转义的单引号。
这也正说明了开始那段代码的错误之处,正确的做法是使用双引号来定义换行的转义序列:
<?php
$out = str_replace(array("rn", "r", "n"), '', $out);
heredoc:
检查所有的内置变量和转义序列,双引号无需转义。
例如:
<?php
echo <<<EOT
this is a "here document" example.
just for test.
EOT;