Почему запрос DOMDocument :: validate () не выполнен? - PullRequest
0 голосов
/ 03 июня 2019

Я сделал функцию, которая помогает мне проверять мой HTML-документ. Это работает, но когда он достигает $doc->validate() части, у меня появляется ошибка о Максимальном времени выполнения

/* This my function and arrays */
$correct_html_array = ['<a>', '<div>', '</div>', '</a>', '<span>', '</span>'];
$incorrect_html_array = ['<a>', '<div>', '</a>', '<p>' , '</tr>'];

function validate_html($html_array) {

    $tags = htmlspecialchars(implode("", $html_array));

    $html_doc="<!DOCTYPE html>" . "<html><body>" . $tags . "</body></html>"; 

    $doc = new DOMDocument();

    $doc->loadHTML($html_doc);

    if($doc->validate()) { // here is a Maximum execution time error
        echo 'Код валидный!';
    } else {  
        echo 'Код не валидный!';
    }

}


validate_html($incorrect_html_array);

/ ** Вот ошибка * /

Внимание: DOMDocument :: Validate (http://www.w3.org/TR/REC-html40/loose.dtd): не удалось открыть поток: HTTP-запрос не выполнен! в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1010 *

Предупреждение: DOMDocument :: validate (): предупреждение ввода-вывода: не удалось загрузить внешнее юридическое лицо "http://www.w3.org/TR/REC-html40/loose.dtd" в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1014 *

Предупреждение: DOMDocument :: validate (): не удалось загрузить внешнее подмножество "http://www.w3.org/TR/REC-html40/loose.dtd" в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1018 *

Неустранимая ошибка: максимальное время выполнения 30 секунд превышено в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 Предупреждение: DOMDocument :: Validate (http://www.w3.org/TR/REC-html40/loose.dtd): не удалось открыть поток: HTTP-запрос не выполнен! в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1022 *

Предупреждение: DOMDocument :: validate (): предупреждение ввода-вывода: не удалось загрузить внешнее юридическое лицо "http://www.w3.org/TR/REC-html40/loose.dtd" в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1026 *

Предупреждение: DOMDocument :: validate (): не удалось загрузить внешнее подмножество "http://www.w3.org/TR/REC-html40/loose.dtd" in C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1030 *

Неустранимая ошибка: максимальное время выполнения 30 секунд превышено в C: \ xampp \ htdocs \ test \ task_4.php в строке 22 * ​​1032 *

Я буду признателен, если вы поможете мне решить эту проблему

...