如何使用PHP从HTML代码中删除多余的<br />标签?

del*_*992 4 html php regex preg-replace

我正在使用PHP解析一些混乱的HTML代码,其中有一些冗余
标记,我想稍微清理它们.例如:

<br>

<br /><br /> 


<br>
Run Code Online (Sandbox Code Playgroud)

如何使用preg_replace()替换类似的东西?:

<br /><br />
Run Code Online (Sandbox Code Playgroud)

换行,空格和之间的差异<br>,<br/>以及<br />将所有的都必须考虑在内.

编辑:基本上我想用两个替换三个或更多连续休息的每个实例.

H9k*_*oid 6

这是你可以使用的东西.第一行找到每当有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;
}
Run Code Online (Sandbox Code Playgroud)


obl*_*lig 5

这应该工作,使用最小说明符:

preg_replace('/(<br[\s]?[\/]?>[\s]*){3,}/', '<br /><br />', $multibreaks);
Run Code Online (Sandbox Code Playgroud)

应该匹配令人震惊的<br><br /><br/><br>结构.