- libxml_clear_errors: documentation ( source)
- libxml_use_internal_errors: documentation ( source)
<?php
$html = <<<EOF
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
<form>
<input type="text" required>test
<input type="submit">test
</form>
<img src="foo.png">
<h1>title</h1>
</body>
</html>
EOF;
libxml_use_internal_errors(true);
libxml_clear_errors();
$dom = new DOMDocument;
$dom->recover = true;
$r = $dom->loadHTML($html,
LIBXML_NOBLANKS // remove blank nodes
| LIBXML_NOCDATA // merge CDATA as text nodes
| LIBXML_NONET // disable network access when loading documents
| LIBXML_NOWARNING);
if(!$r) die('failed to load');
echo $dom->saveHTML();