PHP implements a DOM Level 2 compliant parser, allowing you to work with HTML using familiar methods like getElementById() or appendChild().

$html = '<html><body><span id="text">Hello, World!</span></body></html>';

$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);

echo $doc->getElementById("text")->textContent;

Outputs:

Hello, World!

Note that PHP will emit warnings about any problems with the HTML, especially if you are importing a document fragment. To avoid these warnings, tell the DOM library (libxml) to handle its own errors by calling [libxml_use_internal_errors()](<http://php.net/manual/en/function.libxml-use-internal-errors.php>) before importing your HTML. You can then use [libxml_get_errors()](<http://php.net/manual/en/function.libxml-get-errors.php>) to handle errors if needed.