Ошибка DOMDocument :: loadHTML

Я создаю скрипт, который объединяет все css на странице вместе, чтобы использовать его в моих cms. Он работал отлично в течение долгого времени, теперь получите эту ошибку:

Предупреждение : DOMDocument :: loadHTML () [domdocument.loadhtml]: Недопустимый заголовок тега в Entity, строка: 10 в css.php в строке 26

Предупреждение : DOMDocument :: loadHTML () [domdocument.loadhtml]: тег nav недействителен в Entity, строка: 10 в css.php в строке 26

Предупреждение : DOMDocument :: loadHTML () [domdocument.loadhtml]: раздел тега недействителен в Entity, строка: 22 в css.php в строке 26

Это скрипт php

Это мой код:

<?php header('Content-type: text/css'); include ('../global.php'); if ($usetpl == '1') { $client = New client(); $tplname = $client->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; } 

Заголовок, Nav и раздел являются элементами HTML5. Поскольку разработчики HTML5 считали, что слишком сложно запоминать публичные и системные идентификаторы, объявление DocType справедливо:

 <!DOCTYPE html> 

Другими словами, DTD не проверяется, что сделает DOM использующим DTD HTML4 Transitional и не содержит эти элементы, следовательно, предупреждения.

Чтобы подавить предупреждения, поставьте

 libxml_use_internal_errors(true); 

перед вызовом для loadHTML и

 libxml_use_internal_errors(false); 

после этого.

Альтернативой может быть использование https://github.com/html5lib/html5lib-php .