Получение списка изображений PHP - PullRequest
1 голос
/ 08 июля 2010

Я знаю, это звучит немного странно, но у меня есть строка:

<img src="image1.gif" width="20" height="20"><img src="image3.gif" width="20" height="20"><img src="image2.gif" width="20" height="20">

Есть ли простой способ получить это в массив

массив ( 'image1.gif', 'image3.gif', 'image2.gif');

Спасибо.

Ответы [ 3 ]

4 голосов
/ 08 июля 2010
<?php
$xml = <<<XML
<img src="image1.gif" width="20" height="20">
<img src="image3.gif" width="20" height="20">
<img src="image2.gif" width="20" height="20">
XML;

libxml_use_internal_errors(true);
$d = new DOMDocument();
$d->loadHTML($xml);
$res = array();
foreach ($d->getElementsByTagName("img") as $e) {
    $res[] = $e->getAttribute("src");
}
print_r($res);

т

Array
(
    [0] => image1.gif
    [1] => image3.gif
    [2] => image2.gif
)
0 голосов
/ 08 июля 2010

да

function get_image_sources( $s )
{
  preg_match_all( '/src="([^"]+)"/i' , $s , $sources );
  if(!(count($sources) == 2) || !count($sources[1]) ) return array();
  return $sources[1];
}

:)

0 голосов
/ 08 июля 2010

Используйте регулярное выражение для извлечения каждого из элементов в массив или строку.

Звучит как проблема с домашним заданием, которое у меня когда-то было в тот день, но это должно сблизить вас ...

src\s*=\s*([\'"])?([^\'" >]+)(\1)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...