Я пытаюсь получить 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 * 1013 *
HTML-код, полученный из вызова cURL:
http://pastebin.com/TrV99wAr
Есть ли способ, позволяющий DOMDocument исправлять ошибки или, по крайней мере, он может анализировать остальную часть HTML?