Сведения о вопросе

HEIGTH

12:06, 3rd August, 2020

Теги

php   html   dom    

DOM манипуляции в PHP

Просмотров: 559   Ответов: 4

Я ищу хорошие методы манипулирования HTML в PHP. Например, проблема, с которой я в настоящее время имею дело, - это проблема с деформированным HTML.

Я получаю входные данные, которые выглядят примерно так:

<div>This is some <b>text

Как вы заметили, в HTML отсутствуют закрывающие теги. Я мог бы использовать парсер regex или XML для решения этой проблемы. Тем не менее, вполне вероятно, что в будущем мне придется делать другие манипуляции DOM. Интересно, есть ли какие-нибудь хорошие библиотеки PHP, которые обрабатывают манипуляции DOM подобно тому, как Javascript справляется с манипуляциями DOM.



  Сведения об ответе

park

01:28, 15th August, 2020

PHP имеет расширение PECL, которое дает вам доступ к функциям HTML Tidy . Tidy-это довольно мощная библиотека, которая должна быть способна принимать такой код и закрывать теги разумным образом.

Я использую его для очистки искаженных XML и HTML, отправленных мне секретной рекламной системой перед импортом.


  Сведения об ответе

KOMP

01:38, 29th August, 2020

Я нашел PHP Simple HTML DOM самой полезной и прямолинейной библиотекой на сегодняшний день. Лучше, чем ПЕКЛ, я бы сказал.

Я написал статью о том, как использовать его, чтобы соскрести даты гастролей MySpace artist (просто пример.) Вот ссылка на php simple html dom parser.


  Сведения об ответе

LAST

22:37, 12th August, 2020

Библиотека DOM, которая теперь встроена, может легко решить эту проблему. Метод loadHTML будет принимать искаженные XML, а метод load-нет.

$d = new DOMDocument;
$d->loadHTML('<div>This is some <b>text');
$d->saveHTML();

На выходе будет:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <body>
    <div>This is some <b>text</b></div>
  </body>
</html>


  Сведения об ответе

crush

11:52, 1st August, 2020

Для манипулирования DOM я думаю, что вы ищете именно это . Я использовал для разбора документов HTML из интернета, и это хорошо работало для меня.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться