Используя следующий код:
$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 не упаковывал его так?
Я боролся с той же проблемой. Но нашел это в аккуратной документации. Если вы добавите ‘show-body-only’ => 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>
Других решений пока нет …