Предупреждение PHP DOMDocument :: loadHTML (): раздел тега недопустим в Entity в строке 10

Вот строка 10:

$doc->loadHTML('<?xml encoding = "utf-8" ?>'.$request->getData());

А вот и весь фрагмент кода из моего бэкэнда:

class ParseImageLinks{
public function __construct(){
}

public function Run(\DataLayer\Gallery\Requests\ParseImageLinks $request){
    $doc = new \DOMDocument('1.0');
    $doc->loadHTML('<?xml encoding = "utf-8" ?>'.$request->getData());

    $images = $doc->getElementsByTagName ( "img");

    foreach ($images as $key => $value){
        $src = $value->getAttribute("src");
        $local = false;

        if ($src[0] == 'h') {
            $src = explode("http://", $src)[1];
        }else{
            if ($src[0] == '/') {
                $src = substr($src,1);
                $local = true;
            }
        }

        $parse = explode('/', $src);
        if (count($parse) > 2 && ($local || $parse[0] == $_SERVER['SERVER_NAME'] || $parse[0] == 'localhost:8080')) {
            $image = $parse[count($parse)-1];
            $size = $parse[count($parse)-2];

            $value->setAttribute("src", '/?image='.$image."&size = ".$size);
        }
    }

    return $doc->saveHTML();
}
}

Я потратил несколько часов на поиск в сети. Вот что я пробовал до сих пор:

  • @$doc->loadHTML('<?xml encoding = "utf-8" ?>'.$request->getData());

  • libxml_use_internal_errors(true); $doc->loadHTML('<?xml encoding = "utf-8" ?>'.$request->getData());

  • Я создал файл test.php с этим

    <?php
    $doc = new \DOMDocument('1.0');
    $doc->loadHTML('<ul><li>text</li>'.
    '<li>&frac12; of this is <strong>strong</strong</li></ul>');
    foreach ($doc->getElementsByTagName('li') as $node)
    {
        echo htmlentities(iconv('UTF-8', 'ISO-8859-1', $node->nodeValue)), "\n";
    }
    ?>
    

    что с помощью следующей команды php -f test.php > res.html произошло в файле res.html с text внутри него.

  • Еще я проверил, загружен ли модуль xml и он есть.

Итак, если я правильно понимаю, что DOMDocument () работает в целом, но не в рассматриваемом файле. Почему?

UPD. Я не уверен, но это похоже на то, что изображения не загружаются должным образом.

Почему вы добавляете тег <?xml .. ?>, когда используете loadHTML?

Niet the Dark Absol 28.08.2018 13:53

@NiettheDarkAbsol Я унаследовал этот код и просто пытаюсь пройти через все это, исправляя ошибки по ходу дела ... А еще я новичок в php. Не могли бы вы объяснить, почему вы считаете этот тег лишним? В разных ответах на аналогичную проблему я видел это использование - никто не упоминал, что это было неправильно ...

llama 28.08.2018 14:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
3 148
1

Ответы 1

К сожалению, DOMDocument по-прежнему не может анализировать документ html5. Вам необходимо найти обходной путь механизма тихой ошибки, как показано в следующих вопросах:

Другие вопросы по теме