PHP 用一个 HTML Break 替换双行

Ano*_*ous 2 php double replace line break

我试图用标签替换服务器上的所有 \n\n ,<BR>以便单个 \n 不会变成<BR>.

例子:

Hello,\n\nThis is an\nexample.\n\nThanks!
Run Code Online (Sandbox Code Playgroud)

转到:

Hello,<BR>This is an\nexample,<BR>Thanks!
Run Code Online (Sandbox Code Playgroud)

(注意单个 \n 没有被替换)

当我在 PHP 中执行以下操作时,它不会用中断替换这两行:

$str = str_replace("\n\n", "<br />", $str);
Run Code Online (Sandbox Code Playgroud)

Ali*_*xel 5

实际上(\n\r\n意味着输入来自 Windows 操作系统),我建议您首先使用以下正则表达式将换行符标准化为 *nix 标准:

$str = preg_replace('~\r\n?~', "\n", $str);
Run Code Online (Sandbox Code Playgroud)

然后,您的原始片段将起作用(演示):

$str = str_replace("\n\n", '<br />', $str);
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

$str = str_replace("\r\n\r\n", '<br />', $str);
Run Code Online (Sandbox Code Playgroud)

但如果输入来自 Linux 或旧的 Mac 操作系统(仅使用 ),则该方法不起作用\r