我正在尝试用<BR>
标签替换我服务器上的所有 \n\n ,以便单个 \n 不会变成<BR>
.
例子:
Hello,\n\nThis is an\nexample.\n\nThanks!
去:
Hello,<BR>This is an\nexample,<BR>Thanks!
(注意单个 \n 没有被替换)
当我在 PHP 中执行以下操作时,它不会用中断替换这两行:
$str = str_replace("\n\n", "<br />", $str);
您\n
实际上是\r\n
(这意味着输入来自 Windows 操作系统),我建议您首先使用以下正则表达式将换行符标准化为 *nix 标准:
$str = preg_replace('~\r\n?~', "\n", $str);
然后,您的原始代码段将起作用(演示):
$str = str_replace("\n\n", '<br />', $str);
你也可以这样做:
$str = str_replace("\r\n\r\n", '<br />', $str);
但如果输入来自 Linux 或旧的 Mac OS(仅使用\r
),这将不起作用。
你需要双重转义你的角色:
尝试:
$str = str_replace("\\n\\n", "<br />", $str);