2014-11-13 4 views
1

Я использую скрипт, чтобы получить ГКЗ в <img> с классом = «сокрытие образом»Multiple ЦСИ для IMG класса = «сокрытие изображения» с помощью DomDocument

Веба-страница страницы Google Playstore.

Вот сценарий:

$dom = new DOMDocument; 
libxml_use_internal_errors(true); 
$dom->loadHTMLFile('https://play.google.com/store/apps/details?id=com.igg.castleclash'); 
libxml_clear_errors(); 
$xp = new DOMXPath($dom); 
$image_src = $xp->query("//img[@class='cover-image']/@src"); 
foreach($image_src as $attr) { 
    echo $attr->value. "<br/>"; 
} 

Проблема в том, что есть только один <img> тег с именем класса кавер-изображением, но я все еще получаю 15 значений в исходных текстах.

+0

Это вопрос ранее, если вы попытаетесь наблюдать разметку, она имеет множество результатов. используйте свой 'ctrl + f' в своем контролере вашего браузера для проверки. вы также можете просто получить первое его появление – Ghost

+0

, то как я могу получить первое появление тега ?? – Saswat

ответ

1

Если ваши намерения, чтобы просто получить первый, то вы можете добавить это в запросе XPATH:

$dom = new DOMDocument; 
libxml_use_internal_errors(true); 
$dom->loadHTMLFile('https://play.google.com/store/apps/details?id=com.igg.castleclash'); 
libxml_clear_errors(); 
$xp = new DOMXPath($dom); 
$image_src = $xp->evaluate("string(//img[@class='cover-image'][1]/@src)"); 
echo $image_src; 

echo "<img src='$image_src' alt='' />"; 

Кроме того, если вы хотите, чтобы изображение обложки, это находится на самой верхней части сайта (около часть заголовка), вы можете просто направить его прямо на него:

$image_src = $xp->evaluate(" 
    string(
     //div[@class='details-info'] 
     /div[@class='cover-container'] 
     /img[@class='cover-image']/@src 
    ) 
"); // much more specific 
0

Вы уверены, что должно быть только 1 тег? Я вижу 15 тегов с этим классом в html-коде.

+0

Я могу найти только один тег. – Saswat

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