我正在使用PHP解析一些混乱的HTML代码,其中有一些冗余的标签,我想稍微清理它们。例如:
<br>
<br /><br />
<br>
如何使用preg_replace()替换类似的东西?:
<br /><br />
必须考虑新行,空格以及<br>
,<br/>
和<br />
之间的差异。
编辑:基本上我想用两个替换三个或更多连续休息的每个实例。
答案 0 :(得分: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;
}
答案 1 :(得分:5)
这应该可行,使用最小说明符:
preg_replace('/(<br[\s]?[\/]?>[\s]*){3,}/', '<br /><br />', $multibreaks);
也应该与令人震惊的<br><br /><br/><br>
结构相匹配。
答案 2 :(得分:3)
这将取代所有休息......即使它们是大写的:
preg_replace('/<br[^>]*>/i', '', $string);
答案 3 :(得分:0)
尝试:
preg_replace('/<br\s*\/?>/', '', $inputString);
答案 4 :(得分:0)
使用str_replace,它更适合简单替换,您也可以传递数组而不是单个搜索值。
$newcode = str_replace("<br>", "", $messycode);