Создать вектор и получить все изображения? - PullRequest
0 голосов
/ 02 ноября 2011

Мне нужна помощь, чтобы получить все изображения в моей статье. На данный момент, чтобы получить только первое изображение, я использую это:

$first_img = '';
$mycontent = $row['post_content'];
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $my1content, $matches); 
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$first_img = "/img/default.png";}

Это только первое изображение из статьи.

Так что мне нужно, чтобы получить все изображения из статьи и показать их подряд.

Спасибо

1 Ответ

2 голосов
/ 02 ноября 2011

Функция preg_match_all будет возвращать совпадения массива, будет достаточно цикла foreach.

http://php.net/manual/en/function.preg-match-all.php

foreach($matches as $val) {
    echo $val;
}

Лучший шаблон: /<img(?:(?!src).)+src="?([^"\']+)/i

Для обработки нескольких совпадений вы можете сделать следующее:

$mycontent = '<img something="null" src="ggggg.gif"><br/><img src="bob.jpg">';
$output = preg_match_all('/<img(?:(?!src).)+src="?([^"\']+)/i', $mycontent, $matches, PREG_SET_ORDER); // find all src attributes
foreach($matches as $val) { //loop over <img> tags matches
    echo $val[1];
}
...