DOMDocument :: loadHTML error

Eu crio um script que combina todos os css em uma página para usá-lo no meu cms. Funcionou bem há muito tempo agora, receba este erro:

Aviso : DOMDocument :: loadHTML () [domdocument.loadhtml]: header de tag inválido na Entidade, linha: 10 em css.php na linha 26

Aviso : DOMDocument :: loadHTML () [domdocument.loadhtml]: Tag nav inválido em Entidade, linha: 10 em css.php na linha 26

Aviso : DOMDocument :: loadHTML () [domdocument.loadhtml]: Tag section invalid in Entity, line: 22 in css.php on line 26

Este é o script php

Este é o meu código:

template(); $location = "../templates/$tplname/header.php"; $page = file_get_contents($location); } else { $page = file_get_contents('../index.php'); } class StyleSheets extends DOMDocument implements IteratorAggregate { public function __construct ($source) { parent::__construct(); $this->loadHTML($source); } public function getIterator () { static $array; if (NULL === $array) { $xp = new DOMXPath($this); $expression = '//head/link[@rel="stylesheet"]/@href'; $array = array(); foreach ($xp->query($expression) as $node) $array[] = $node->nodeValue; } return new ArrayIterator($array); } } foreach (new StyleSheets($page) as $index => $file) { $css = file_get_contents($file); echo $css; } 

Cabeçalho, Nav e Seção são elementos do HTML5. Como os desenvolvedores de HTML5 sentiram que é muito difícil se lembrar de Identificadores públicos e de sistemas, a declaração DocType é apenas:

  

Em outras palavras, não há DTD para verificar, o que fará com que o DOM use o DTD transicional HTML4 e que não contenha esses elementos, daí os Avisos.

Para sobrecarregar as advertências, coloque

 libxml_use_internal_errors(true); 

antes da chamada para loadHTML e

 libxml_use_internal_errors(false); 

depois disso.

Uma alternativa seria usar https://github.com/html5lib/html5lib-php .