我的客户正在使用旧的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>
感谢您提供的任何帮助!
答案 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