我正在使用PHP解析一些混乱的HTML代码,其中有一些多余的
标签,我想稍微清理一下。例如:
<br>
<br /><br />
<br>
我该如何使用preg_replace()将类似这样的内容替换为这个内容呢?:
<br /><br />
新行、空格以及
<br>
、<br/>
和 <br />
之间的区别都需要考虑在内。
编辑:基本上,我想用两个换行符来替换连续三个或更多的换行符。
我正在使用PHP解析一些混乱的HTML代码,其中有一些多余的
标签,我想稍微清理一下。例如:
<br>
<br /><br />
<br>
我该如何使用preg_replace()将类似这样的内容替换为这个内容呢?:
<br /><br />
<br>
、<br/>
和 <br />
之间的区别都需要考虑在内。
编辑:基本上,我想用两个换行符来替换连续三个或更多的换行符。
这里有一段你可以使用的代码。第一行代码用于查找2个或更多的<br>
标签(之间带有空格并且类型不同),并将它们替换为格式良好的<br /><br />
。
如果需要,我还包括了第二行代码来清理其余的<br>
标签。
function clean($txt)
{
$txt=preg_replace("{(<br[\\s]*(>|\/>)\s*){2,}}i", "<br /><br />", $txt);
$txt=preg_replace("{(<br[\\s]*(>|\/>)\s*)}i", "<br />", $txt);
return $txt;
}
<br /><br />
改为<p />
,你可以获得更好的输出(HTML方面,不确定你是否打算显示它)。 - H9kDroid应该可以使用最少的限定符来实现这个功能:
preg_replace('/(<br[\s]?[\/]?>[\s]*){3,}/', '<br /><br />', $multibreaks);
应该匹配令人震惊的<br><br /><br/><br>
结构。
<br>
。 - Karl Andrew这将替换所有的换行符...即使它们是大写的:
preg_replace('/<br[^>]*>/i', '', $string);
<br clear="all">
或类似结构的标签,这些标签可能不希望完全折叠。当然,在这种情况下可能并不相关。 - Chris$newcode = str_replace("<br>", "", $messycode);
尝试使用:
preg_replace('/<br\s*\/?>/', '', $inputString);