Возможный дубликат:
Лучшие методы анализа HTML с помощью PHP
Для проекта мне нужно взять HTML-страницу и извлечь из нее все ее тексты и теги img и сохранить их в том же порядке, что и на веб-странице.
Так, например, если веб-страница:
<p>Hi</p> <a href ="test.com" alt="a link"> text link</a> <img src="test.png" /> <a href ="test.com"><img src="test2.png" /></a>
Я хотел бы получить эту информацию в этом формате:
text - Hi Link1 - <a href ="test.com">text link</a> notice without alt or other tag Img1 - test.png Link2 - <a href ="test.com"><img src="test2.png" /></a> again no tag
Есть ли способ сделать это в PHP?
Есть ли способ сделать это в php?
Да, вы можете сначала удалить все теги, которые вам не интересны, а затем использовать DOMDocument
для удаления всех нежелательных атрибутов. Наконец, вам нужно повторно запустить strip_tags
чтобы удалить теги, добавленные DomDocument
:
$allowed_tags = '<a><img>'; $allowed_attributes = array('href', 'src'); $html = strip_tags($html, $allowed_tags); $dom = new DOMDocument(); $dom->loadHTML($html); foreach($dom->getElementsByTagName('*') as $node) { foreach($node->attributes as $attribute) { if (in_array($attribute->name, $allowed_attributes)) continue; $node->removeAttributeNode($attribute); } } $html = $dom->saveHTML($dom->getElementsByTagname('body')->item(0)); $html = strip_tags($html, $allowed_tags);
демонстрация
Я бы использовал HTML Parser, чтобы вытащить информацию из веб-сайта. Получить чтение.