2013-08-02 2 views
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"; 
} 
} 
?> 

ответ

1

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); 
} 
+0

спасибо, он показывает только текст, отсутствует гиперссылка. могу ли я получить результат с помощью html? –

+0

См. Мое редактирование, вы можете использовать '$ dom-> saveXML ($ div)' для получения HTML. – MrCode

+0

спасибо, он работает. –

Смежные вопросы