Come ottenere un div tramite PHP?

Ottengo una pagina usando file_get_contents da un server remoto, ma voglio filtrare quella pagina e ottenere un DIV che abbia class “testo” usando PHP. Ho iniziato con DOMDocument ma ora mi sto perdendo.

Qualsiasi aiuto?

 $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; } } } } 

Una volta caricato il documento in un’istanza DOMDocument , è ansible utilizzare le query XPath su di esso, il che potrebbe essere più semplice che passare attraverso il DOM.

Per questo, puoi usare la class DOMXpath .

Ad esempio, dovresti essere in grado di fare qualcosa del genere:

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

(Non testato, quindi potrebbe essere necessario adattare la query XPath un po ‘…)

Personalmente, mi piace Simple HTML Dom Parser .

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

Abbastanza semplice, eh? Ospita selettori come jQuery 🙂

puoi utilizzare simple_html_dom come in questo caso simple_html_dom doc

o usa il mio codice come qui:

 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 

echo $ con_div in chiaro …

 $con_div->plaintext; 

significa che troverai il primo div in array (‘div’, 0) e mostralo in testo in chiaro … spero che ti aiuti: esultare