Получение списка дочерних узлов из тега HTML с использованием PHP - PullRequest
2 голосов
/ 09 декабря 2011

В настоящее время я использую PHP DOM для получения тега BODY из HTML.

$doc = new DOMDocument();
$doc->loadHTML($HTML);    
$body = preg_replace("/.*<body[^>]*>|<\/body>.*/si", "", $HTML);

Приведенный выше код полностью дает мне HTML-код из тега body для данного HTML.

Можно ли получить теги HTML с $body в виде массива?

1 Ответ

4 голосов
/ 09 декабря 2011

Если возможно, я бы использовал DOM - это сделает ваше решение более надежным и чистым в использовании.

Это должно направить вас в правильном направлении (я не пишу решение для вас, извините):

$html = file_get_contents("http://google.com");
$dom = new DOMdocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$elements = $xpath->query("//*");


foreach ($elements as $element) {

        echo "<h1>". $element->nodeName. "</h1>";
        $nodes = $element->childNodes;

        foreach ($nodes as $node) {
                echo "<h2>".$node->nodeName. "</h2>";
                echo $node->nodeValue. "\n";
        }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...