如果我将 2 行值分配给这样的变量。
$tt = 'part 1
part 2 ';
我附和它。
echo $tt;
我的浏览器将它显示在 2 行上,这很好。但是在源页面上,代码将有 2 行。
怎么能摆脱这个回车。因为它不是 chr(13) 和 \r,所以这些都不起作用。
echo str_replace(chr(13), '-', $tt);
echo str_replace('\r', '-', $tt);
任何想法?
如果我将 2 行值分配给这样的变量。
$tt = 'part 1
part 2 ';
我附和它。
echo $tt;
我的浏览器将它显示在 2 行上,这很好。但是在源页面上,代码将有 2 行。
怎么能摆脱这个回车。因为它不是 chr(13) 和 \r,所以这些都不起作用。
echo str_replace(chr(13), '-', $tt);
echo str_replace('\r', '-', $tt);
任何想法?
这实际上取决于您所处的环境。在 Windows 中,换行符是 \r\n。在 *nix 环境中它只是 \n。
echo str_replace("\r", "-", str_replace("\n", "-", $tt));
适用于 Windows 或 Linux 的简单方法:
str_replace("\r\n", "-", $var);
在 Linux 上,仍会检测到 \r\n。这里提出的任何其他建议都是过分的(尽管不一定是不正确的)。
请记住,在使用 \r 或 \n 等特殊字符时需要使用双引号。
编辑:
如果你想格外小心,你可以用这个来代替:
str_replace(array("\r\n", "\n"), "-", $var);
对于 \r 或 \n 之类的东西,您不需要使用 char() 函数的任何额外开销。
你可以试试
str_replace(array(chr(13),chr(10)), "-", $tt);