2016-02-12 3 views
0

Я пытаюсь захватить тег img внутри html. HTML выглядит примерно так:PHP DOMDocument: getElementsbyTagName ('img') не работает

<img style='width:198px;height:279px;'   class='featureImg'    src='image-loader.gif'   data-src='http://somesites.com/med/1455.jpg'   alt="Picture"> 
 
    

Теперь я хочу, чтобы захватить IMG SRC http://somesites.com/med/1455.jpg.

$dom = new DOMDocument(); 
libxml_use_internal_errors(true); 
$dom->loadHTML($html); 
$divs = $dom->getElementsByTagName('img'); 
foreach ($divs as $div){ 
    if(preg_match_all('/\bfeatureImg\b/', $div->getAttribute('class'))) { 
     $links = $div->getElementsByTagName('img'); 
     foreach($links as $link){ 
       $li = $link->getAttribute('data-src'); 

       echo ($li.'<br>'); 

}}} 

И не работает ... Кто-нибудь поможет?

+0

не должен быть '$ link-> getAttribute ('src');'? – andre3wap

ответ

0

Это уже дает изображения:

$divs = $dom->getElementsByTagName('img'); 

Так если preg_match_all спичек, вы можете получить атрибут 'Data-Src':

$html = <<<SOURCE 
<img style='width:198px;height:279px;'   class='featureImg'    src='image-loader.gif'   data-src='http://somesites.com/med/1455.jpg'   alt="Picture"> 
SOURCE; 
$dom = new DOMDocument(); 
libxml_use_internal_errors(true); 
$dom->loadHTML($html); 

$divs = $dom->getElementsByTagName('img'); 
foreach ($divs as $div) { 
    if (preg_match_all('/\bfeatureImg\b/', $div->getAttribute('class'))) { 
     echo $div->getAttribute('data-src'); 
    } 
} 

приведет к:

http://somesites.com/med/1455.jpg

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