Как получить div через PHP?

Я получаю страницу с использованием file_get_contents с удаленного сервера, но я хочу отфильтровать эту страницу и получить из нее DIV, который имеет класс «текст» с использованием PHP. Я начал с DOMDocument но теперь я потерялся.

Любая помощь?

 $file = file_get_contents("xx"); $elements = new DOMDocument(); $elements->loadHTML($file); foreach ($elements as $element) { if( !is_null($element->attributes)) { foreach ($element->attributes as $attrName => $attrNode) { if( $attrName == "class" && $attrNode== "text") { echo $element; } } } } 

После того, как вы загрузили документ в экземпляр DOMDocument , вы можете использовать запросы XPath на нем – что может быть проще, чем идти через DOM.

Для этого вы можете использовать класс DOMXpath .

Например, вы должны сделать что-то вроде этого:

 $dom = new DOMDocument(); $dom->loadHTML($html); $xpath = new DOMXPath($dom); $tags = $xpath->query('//div[@class="text"]'); foreach ($tags as $tag) { var_dump($tag->textContent); } 

(Не тестировалось, поэтому вам может потребоваться немного изменить запрос XPath …)

Лично мне нравится Simple HTML Dom Parser .

 include "lib.simple_html_dom.php" $html = file_get_html('http://scrapeyoursite.com'); $html->find('div.text')->plaintext; 

Довольно просто, да? Он вмещает селектора, такие как jQuery 🙂

вы можете использовать simple_html_dom как здесь simple_html_dom doc

или используйте мой код, как здесь:

 include "simple_html_dom.php"; $html = new simple_html_dom(); $html->load_file('www.yoursite.com'); $con_div = $html->find('div',0);//get value plaintext each html 

эхо $ con_div в открытом тексте ..

 $con_div->plaintext; 

это означает, что вы найдете первый div в массиве ('div', 0) и покажете его в виде открытого текста. Надеюсь, он вам поможет: cheer