我正在尝试使用tidy函数清理没有结束标记的html字符串:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>

但是,当我使用以下行时:
$tidy = tidy_parse_string($data);
tidy_clean_repair($tidy);
echo ($tidy);

未添加</hr>标记,输出:
<html>
<head>
<title>301 Moved Permanently</title>
</head>
<body bgcolor='white'>
<center>
<h1>301 Moved Permanently</h1>
</center>
<hr>
<center>nginx</center>
</body>
</html>

tidy库是不能关闭</hr>标记,还是我遗漏了什么?

最佳答案

好吧,主题休息标签不是一个要关闭的标签。
W3C -> hr
hr元素是一个void元素。hr元素必须有开始标记,但不能有结束标记。
如果你真的需要,你可以这样做:

$html = str_replace('<hr>', '<hr/>', $html);

这将假装标签是自动关闭的,并防止<hr>对不关闭标签感到歇斯底里。

关于php - 整洁不关闭<hr>标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38624680/

10-13 03:09