如何将新行和br转换为段落标记

时间:2015-05-05 16:38:01

标签: php preg-replace nl2br

我的客户正在使用旧的CMS,他们的数据库包含在前端使用nl2br()的博客条目,以给出段落间距的错觉。

在后端,有一个简单的textarea,允许您添加文本。

例如,如果你添加这个:

First line<br>
Second line<br>
Third line<br>

它在前端显示如下

First line

Second line

Third line

如何使用preg_replace查找此模式,以便我可以在数据库中使其更像这样

<p>First line</p>
<p>Second line</p>
<p>Third line</p>

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

这里的示例PHP应该可以执行您正在寻找的内容。

<?php
$string = <<<STRING
First line<br>
Second line<br>
Third line<br>
STRING;

$output = preg_replace("/^(.*)<br.*\/?>/m", '<p>$1</p>', $string);

echo $output;
?> 

输出结果如下:

<p>First line</p>                                                                                                             
<p>Second line</p>                                                                                                            
<p>Third line</p> 

如果您想使用它,请使用正则表达式:https://regex101.com/r/zY6zO9/1