Intereting Posts

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

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

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

<div>This is some <b>text 

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

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

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

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

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

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

 $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> 

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