PHP 将双行替换为一个 HTML 分隔符


PHP replace double-lines with one HTML Break

我正在尝试将服务器上的所有''替换为<BR>标记,以便单个'不会变成<BR>

例:

Hello,'n'nThis is an'nexample.'n'nThanks!

转到:

Hello,<BR>This is an'nexample,<BR>Thanks!

(请注意,未替换单个 ')

当我在 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);