Простой PHP-домен позволяет нам взять HTML-страницу и извлечь только разметку, оставив текст. Как это:
echo file_get_html('http://www.google.com/')->plaintext;
Я ищу напротив этого метода. Удалите весь текст и сохраните только теги. Это существует? Я не могу найти какую-либо ссылку.
В реальном API-интерфейсе W3C DOM (не SimpleHtmlDom) все является узлом, а не только узлами элемента. С XPath вы можете выбрать их, используя text()
функция.
$html = <<<'HTML'
<html><body>
<div>
TEXT<div>TEXT</div>
</div>
</body></html>
HTML;
$document = new DOMDocument();
$document->loadHTML($html);
$xpath = new DOMXpath($document);
foreach ($xpath->evaluate('//text()') as $node) {
$node->parentNode->removeChild($node);
}
echo $document->saveHtml($document->documentElement);
Выход:
<html><body><div><div></div></div></body></html>
Не используйте поиск и заменить функцию PHP или регулярное выражение. Они предназначены для разбора и уменьшения строк и больших текстов. Используйте что-нибудь в строке HTML DOM для разбора.
http://simplehtmldom.sourceforge.net/manual.htm
Например, чтобы найти все теги img в HTML-документе, вы должны сделать следующее:
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
перейдя по указанному ниже URL-адресу, вы узнаете, как найти HTML-элементы на загруженной HTML-странице.
http://simplehtmldom.sourceforge.net/manual.htm#section_find
это самый эффективный способ сделать это. он имеет встроенный искатель, чтобы найти элементы HTML и сформировать его в соответствии с вашими потребностями.