Я создаю скрипт, который объединяет все css на странице вместе, чтобы использовать его в моих cms. Он работал отлично в течение долгого времени, теперь получите эту ошибку:
Предупреждение : DOMDocument :: loadHTML () [domdocument.loadhtml]: Недопустимый заголовок тега в Entity, строка: 10 в css.php в строке 26
- постоянная связь клиентского сервера PHP
- Сделать mp3 для поиска PHP
- PHP и localStorage;
- Атрибут «загрузить» в теге <a> не работает в IE, сафари или Opera
- Как отправить данные json_encode с помощью HTML5 SSE
Предупреждение : 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 .