PHP:html整洁修复字符串:使其不包含<;html>;


PHP: html tidy repair string: making it not encase everything in <html>

使用以下代码:

$tidy = new tidy();
$clean = $tidy->repairString("<p>Hello</p>");

这包含了整个恶作剧中的字符串:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>Hello</p>
</body>
</html>

由于我在"描述"字段中使用它,其中不时包含一些html标记,我只想用它来修复字符串中的异常,例如未关闭的元素、已关闭但未打开的元素等等,而不是像这样将其封装为完整的html文档。

如果字符串根本不包含任何html,那么它应该只返回输入。如果它包含像上面的例子一样的html,它应该修复任何需要修复的东西(在这个例子中没有什么),而不是将其封装在一个完整的文档中。

有人知道如何让HTML Tidy不像这样封装它吗?

我也遇到了同样的问题。但在整洁的文档中找到了它。如果您添加"仅显示正文"=>true,它将不会显示完整的html标题,依此类推

$tidy = new tidy();
$input = "<p>A paragraph with <b>bold<b> text";
$clean = $tidy->repairString($input,array('show-body-only' => true));
echo $clean;

将显示:<p>A paragraph with <b>bold</b> text</p>