如何用新行替换所有XHTML / HTML换行符(<br>)?
我正在寻找最好的功能。我想用换行符替换和 的所有实例。很像 nl2br() 函数,但恰恰相反。br2nl
<br>
<br />
\n
我知道PHP手册评论中有几个解决方案,但我正在寻找SO社区对可能解决方案的反馈。
我正在寻找最好的功能。我想用换行符替换和 的所有实例。很像 nl2br() 函数,但恰恰相反。br2nl
<br>
<br />
\n
我知道PHP手册评论中有几个解决方案,但我正在寻找SO社区对可能解决方案的反馈。
我通常会说“不要使用正则表达式来使用HTML”,但是,在这个上,我可能会使用正则表达式,考虑到标签通常看起来像:<br>
<br>
<br/>
/
我想这样的东西可以做到这一点:
$html = 'this <br>is<br/>some<br />text <br />!';
$nl = preg_replace('#<br\s*/?>#i', "\n", $html);
echo $nl;
一些注意事项:
<br
\s*
/
/?
>
#i
<BR>
您应该使用常量来拥有独立于平台的换行符。PHP_EOL
在我看来,尽可能使用非正则表达式函数会使代码更具可读性。
$newlineTags = array(
'<br>',
'<br/>',
'<br />',
);
$html = str_replace($newlineTags, PHP_EOL, $html);
我知道这个解决方案有一些缺陷,但仍然想分享我的见解。