PHP ile bir div nasıl alabilirim?

3 Cevap php


I get a page using file_get_contents from a remote server, but I want to filter that page and get a DIV from it that has class "text" using PHP. I started with DOMDocument but I'm lost now.

Herhangi bir yardım?

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

3 Cevap

Bir DOMDocument örneğine belge yüklendikten sonra, bunu XPath sorguları kullanabilirsiniz - DOM aracılığıyla kendinizi giderek daha kolay olabilir ki.

Bunun için, size DOMXpath sınıfını kullanabilirsiniz.


For example, you should be able to do something like this :

$dom = new DOMDocument();
$dom->loadHTML($html);

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


(Not tested, so you might need to adapt the XPath query a bit...)

Şahsen ben beğendim Simple HTML Dom Parser.

include "lib.simple_html_dom.php"

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

Oldukça basit, değil mi? Bu jQuery gibi seçiciler barındırır :)

Burada gibi simple_html_dom kullanabilirsiniz simple_html_dom doc

ya da burada olduğu gibi benim kodu kullanabilirsiniz:

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

düz metin olarak $ con_div echo ..

$con_div->plaintext;

it's mean you will find the first div in array ('div',0) and show it in plaintext.. i hope it help you :cheer