Я пытаюсь получить HTML-код веб-страницы и удалить из него теги <script>
. Я могу получить HTML (используя cURL
), но я не могу удалить теги <script>
, используя PHP DOMDocument
. Удаление тегов - это только одна вещь, которую я хочу сделать с DOMDocument, поэтому я не могу использовать другое решение (ну, я думаю, я мог бы использовать какой-нибудь другой парсер DOM, но я просто хочу знать, как это исправить).
Мой код:
function clean_html(&$html, $targets = array('script'))
{
$doc = new DOMDocument();
$doc->loadHTML($html); // here I get the error
foreach($targets as $target) {
$tags = $doc->getElementsByTagName($target);
$length = $tags->length;
for ($i = 0; $i < $length; $i++) {
$tags->item(0)->parentNode->removeChild($tags->item(0));
}
}
return $doc->saveHTML();
}
$html = get_html('http://www.google.nl'); // this gets the HTML using cURL.
clean_html($html);
Ошибки (их много +/- 20):
Предупреждение: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: нет имени в Entity, строка: 24 в C:...\code\views\index.phtml в строке 22
HTML, который я получил от вызова cURL:
Есть ли способ позволить DOMDocument исправить ошибки или, по крайней мере, позволить ему проанализировать остальную часть html?