DOMDocument :: loadHTML错误

我构build了一个脚本,将页面上的所有CSS组合在一起,以便在我的cms中使用它。 现在它工作很好,现在ii得到这个错误:

警告 :DOMDocument :: loadHTML()[domdocument.loadhtml]:实体中的标题标题无效,第26行的css.php中的第10行

警告 :DOMDocument :: loadHTML()[domdocument.loadhtml]:在实体中标记导航无效,第26行的css.php中的第10行

警告 :DOMDocument :: loadHTML()[domdocument.loadhtml]:实体中的标记部分无效,行26css.php中的 22行

这是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; } 

标题,导航和部分是来自HTML5的元素。 由于HTML5开发人员觉得难以记住公共和系统标识符,DocType声明只是:

 <!DOCTYPE html> 

换句话说,没有DTD需要检查,这将使DOM使用HTML4 Transitional DTD,并且不包含这些元素,因此警告。

要压制警告,放

 libxml_use_internal_errors(true); 

之前调用loadHTML

 libxml_use_internal_errors(false); 

之后。

另一种方法是使用https://github.com/html5lib/html5lib-php