2016-02-26 2 views
1

Предположим, у меня есть структура HTML, как:Извлечение всех изображений из определенного исходным текстам DIV

<div> 
     <div class="content"> 
      <p>This is dummy text</p> 
      <p><img src="a.jpg"></p> 
      <p>This is dummy text</p> 
      <p><img src="b.jpg"></p> 
     </div> 
</div> 

Я хочу получать все изображения от SRC .content дел. Я пробовал:

<?php 
// a new dom object 
$dom = new domDocument; 

// load the html into the object 
$dom->loadHTML("example.com/article/2345"); 

// discard white space 
$dom->preserveWhiteSpace = false; 
//get element by class 
$finder = new DomXPath($dom); 
$classname = 'content'; 
$content = $finder->query("//*[contains(@class, '$classname')]"); 
foreach($content as $item){ 
    echo $item->nodevalue; 
} 

Но я не могу получить что-нибудь, когда я Переберите $content. Пожалуйста помоги.

+0

разместить свой код цикла, пожалуйста? – Vincent

+0

да. Я опубликовал. – user254153

+0

Я вижу фиктивный текстовый бит в цикле, heres the fiddle - https://3v4l.org/MXSK7, вы уверены, что структура того, что вы получаете от example.com/article/2345, такая же, как ваша структура выборки – Vincent

ответ

4

Изменить свой запрос XPath, как показано ниже:

// loading html content from remote url 
$html = file_get_contents("http://nepalpati.com/entertainment/22577/"); 
@$dom->loadHTML($html); 
... 
$classname = 'content'; 
$img_sources = []; 

// getting all images within div with class "content" 
$content = $finder->query("//div[@class='$classname']/p/img"); 
foreach ($content as $img) { 
    $img_sources[] = $img->getAttribute('src'); 
} 
... 
var_dump($img_sources); 
// the output: 

array(2) { 
    [0]=> 
    string(68) "http://nepalpati.com/mediastorage/images/2072/Falgun/khole-selfi.jpg" 
    [1]=> 
    string(72) "http://nepalpati.com/mediastorage/images/2072/Falgun/khole-hot-selfi.jpg" 
} 
+0

У меня есть пустой массив. – user254153

+0

@ пользователь254153, о, да. Просто немного исправить. Проверь это. Он должен работать – RomanPerekhrest

+0

'$ dom-> loadHTML (" example.com/article/2345 "); 'не загружает ни один html для меня. Есть какие-либо проблемы. – user254153

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

  • Нет связанных вопросов^_^