我想修复关闭我网站的html标签,我的用户发布的数据格式不正确,(有时他们忘记关闭html标签,这会使他们的帖子看起来很难看。)
所以我尝试了preg_replace,但它不起作用
这是我的字符串:
$upost="<html><body><b>Hello world!<b></body><html>";
标签B和Html未关闭,我希望我的代码能够找到所有未关闭的标签并进行更正。
echo preg_replace("/.*|^<[^>]+>[^>]+<([^>]+)>/i","</$1>",$upost);
我该如何解决这个问题?
答案 0 :(得分:3)
别。至少是not with a regex。
libxml_use_internal_errors(true); // basically hide 'em, we don't care
$dom = new DOMDocument();
$dom->loadHTML($upost);
$upost = $dom->saveHTML();
根据需要进行调整,但这会尽可能地解析它并返回格式正确的HTML。