PHP用一个HTML Break代替双行

时间:2012-05-30 22:51:10

标签: php replace double line break

我正在尝试使用<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);

2 个答案:

答案 0 :(得分:2)

你需要双重逃避你的角色:

尝试:

$str = str_replace("\\n\\n", "<br />", $str);

答案 1 :(得分:2)

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

$str = preg_replace('~\r\n?~', "\n", $str);

然后,您的原始代码段将起作用(demo):

$str = str_replace("\n\n", '<br />', $str);

您也可以这样做:

$str = str_replace("\r\n\r\n", '<br />', $str);

但是,如果输入来自Linux或旧的Mac OS(仅使用\r),则无效。