2014-01-21 3 views
1

У меня было так много адресов веб-сайтов, у которых есть изображения, которые я хочу иметь. Я хочу знать источник изображения на этом веб-сайте.Как я могу получить источник изображения с другого сайта?

Ниже представлен мой код php. но это не работает.

<?php 
    $html = array('url1', 'url2', ...); 
    $result = ""; 
    preg_match_all('/<img[^>]+>/i', $html, $result); 
    echo $result; 
    ?> 

Пожалуйста, заполните выше неполный код.

+0

, как вы ожидаете, что будет работать с этим кодом? –

ответ

3

Вам лучше с DOMDocument класса, никогда не используйте Regex как синтаксический анализатор для разбора HTML-содержимого.

$htmlsourceofthewebsite = file_get_contents('http://www.somewebsite.com'); 
$dom = new DOMDocument; 
$dom->loadHTML($htmlsourceofthewebsite); 
foreach ($dom->getElementsByTagName('img') as $tag) { 
     echo $tag->getAttribute('src'); 
    } 
} 
+0

Где я вставляю адреса веб-сайтов, которые я хочу найти? Я новичок, извините – user3183995

+0

loadHTML ($ htmlsourceofthewebsite); foreach ($ dom-> getElementsByTagName ('img') как $ tag) { echo $ tag-> getAttribute ('src'); } } ?> – user3183995

+0

Нет, см. Отредактированный ответ. Используйте 'file_get_contents()'; –

0

Вы не должны использовать регулярное выражение для разбора содержимого html. Используйте DOMDocument.

Try так:

$html=array('url1', 'url2', ........); // your url array 

     foeach($html as $a){ //run a loop through your array 
      getImage($a); // get images 

     } 

     function getImage($url){   
     $dom = new DOMDocument; 
     $dom->loadHTML($url); 
     foreach ($dom->getElementsByTagName('img') as $t) { 
       echo $t->getAttribute('src'); 
      } 
      } 
     } 

Документ: http://www.php.net/manual/en/class.domdocument.php

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