我需要清理一些非常丑陋的HTML(想想< span>< / span>< em>< / em>< em>< / em>< strong>< / strong> )一遍又一遍......
我正在寻找一个简单易用的preg_replace来消除任何包含它们之间可选空格的html标签。非常感谢您的帮助!
哦,刚发现这个美女:
< p为H.<强><强>< /强>< /强>< / p为H.
看起来这也需要在while循环中生存。
答案 0 :(得分:5)
这个主题如何不断出现很有趣。
答案 1 :(得分:2)
如果您希望真正清理一些代码,我建议使用PHP中的Tidy类。有some examples可能有助于您入门。 (注意这是HTML Tidy)
的前端答案 2 :(得分:0)
如果你真的想要一个正则表达式,这里有一个:
s:<(\w+)>\s*<\/\1>::g
多次运行以消除嵌套案例。
答案 3 :(得分:0)
嗯,看起来整洁是答案:
function cleanupcrap($html){
$tidy_config = array(
'clean' => true,
'output-xhtml' => true,
'show-body-only' => true,
'wrap' => 0,
);
$tidy = tidy_parse_string($html, $tidy_config, 'UTF8');
$tidy->cleanRepair();
return $tidy->value;
}