• Записи 162
  • Теги 66
  • Комментарии 330

Компьютерное

Особенности работы с HTML в PHP 8.4

В версиях PHP до 8.4 для выборочной очистки HTML использовался класс DOMDocument, который изначально был предназначен для работы с XML. Однако в версии 8.4 его использование приводит к тому, что возвращается пустая строка. Стал искать решение, и выяснилось, что с этой версии именно для HTML появился новый класс: Dom\HTMLDocument, а для выборки с помощью XPath вместе с ним теперь следует использовать Dom\XPath.

В итоге код для обработки HTML приобретает примерно такой вид:

[php]

1 комментарий:

4X_Pro
0

Ещё одна особенность выявилась: для Dom\XPath не работает поиск по имени тега, если импорт документа делать без опции Dom\HTML_NO_DEFAULT_NS.
Т.е. нужно примерно так: <?php
          $dom 
Dom\HTMLDocument::createFromString($html,Dom\HTML_NO_DEFAULT_NS);
          
$xpath = new Dom\XPath($dom);
          
$og_title $xpath->query('//meta[@property="og:title"]');

Написать комментарий


Задать вопрос