Php, как получить список картинок из html?

Дата: 25 июня /

Способ №1. Регулярные выражения

/* получаем список всех тегов img*/

preg_match_all('/<img[^>]+>/i',$html, $result); 

print_r($result);

/*Array
(
    [0] => Array
        (
            [0] => <img src="/Content/Img/stackoverflow-logo-250.png" width="250" height="70" alt="logo link to homepage" />
            [1] => <img class="vote-up" src="/content/img/vote-arrow-up.png" alt="vote up" title="This was helpful (click again to undo)" />
            [2] => <img class="vote-down" src="/content/img/vote-arrow-down.png" alt="vote down" title="This was not helpful (click again to undo)" />
            [3] => <img src="http://www.gravatar.com/avatar/df299babc56f0a79678e567e87a09c31?s=32&amp;d=identicon&amp;r=PG" height=32 width=32 alt="gravatar image" />
            [4] => <img class="vote-up" src="/content/img/vote-arrow-up.png" alt="vote up" title="This was helpful (click again to undo)" />

[...]
        )

)
*/

//Парсим полученные теги в массив состоящий из пути к картинке, а также значений атрибутов title и alt

$img = array();
foreach( $result as $img_tag)
{
    preg_match_all('/(alt|title|src)=("[^"]*")/i',$img_tag, $img[$img_tag]);
}

print_r($img);

/*
Array
(
    [<img src="/Content/Img/stackoverflow-logo-250.png" width="250" height="70" alt="logo link to homepage" />] => Array
        (
            [0] => Array
                (
                    [0] => src="/Content/Img/stackoverflow-logo-250.png"
                    [1] => alt="logo link to homepage"
                )

            [1] => Array
                (
                    [0] => src
                    [1] => alt
                )

            [2] => Array
                (
                    [0] => "/Content/Img/stackoverflow-logo-250.png"
                    [1] => "logo link to homepage"
                )

        )

    [<img class="vote-up" src="/content/img/vote-arrow-up.png" alt="vote up" title="This was helpful (click again to undo)" />] => Array
*/

Способ 2. Используя Dom-модель

$url="http://example.com";

$html = file_get_contents($url);

$doc = new DOMDocument();
@$doc->loadHTML($html);

$tags = $doc->getElementsByTagName('img');

foreach ($tags as $tag) {
       echo $tag->getAttribute('src');
}

Источник — http://stackoverflow.com

Статьи по теме:

  1. Коллекция регулярных выражений(regexp) для PHP
  2. Joomla, список аргументов функции вывода модулей mosLoadModules()
  3. Список JavaScript кодов символов или нажатий кнопок
  4. Php, как узнать является ли текущая страница главной?
  5. Битрикс ресайз картинок

Метки: , ,

Рубрика: PHP

Оставить комментарий