2

curl 関数を使用して反対側から取得していますが、サイトの完全なページが表示されています。クラス名に基づいてコンテンツを表示したい。どうすればできるか教えてください。私は次のコードを使用しています:-

 <?php
 $curl = curl_init('http://www.insolvency.govt.nz/cms/search?SearchableText=smith');
 curl_setopt($curl, CURLOPT_FAILONERROR, true);
 curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  
 $result = curl_exec($curl);
 $dom = new DOMDocument();
 $res=$dom->loadHTML($result);
 $divs = $dom->getElementsByTagName('div');

 foreach($divs as $div) {
 if ($div->getAttribute('id') === 'searchResult') {
     echo $div->nodeValue;
 }else{
echo "error";   
}
}
?>
4

1 に答える 1

2

XPath を使用して、クラス名で要素を取得できます。myClass以下の例では、クラスを持つ要素を取得します。

$dom = new DOMDocument();
$res=$dom->loadHTML($result);

$xpath = new DomXPath($dom);
$class = 'myClass';
$divs = $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $class ')]");

foreach($divs as $div) {
    echo $div->nodeValue;

    echo $dom->saveXML($div);
}
于 2013-08-02T09:11:08.043 に答える