[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не могу разобраться с preg_replace
Maxchen
Доброго времени суток!
Помогите плизз решить проблему с регуляркой...

$string = 
'<img src="1.gif" />
<img src="2.gif" />
<img src="3.gif" />
<img src="4.gif" />
<img src="5.gif" />'
;
$result = preg_replace('/(<img(.*)>$)/', '.', $string);
echo $result;


замена происходит только последнего изображения, а нужно все кроме первого - второй день долблюсь и ни как :(

Если есть другой вариант кроме preg_replace - я только за!

Заранее благодарен.



Спустя 14 минут, 41 секунда (3.04.2011 - 17:10) Rand написал(а):
$result = preg_replace('/<img.*>/', '.', $string);


update: сорри, не то, первого ведь не надо, сейчас подумаю, напишу ))

Спустя 35 минут, 39 секунд (3.04.2011 - 17:46) Winston написал(а):
Лучше поставь первый элемент в конец и сделай так:
$string = 
'<img src="2.gif" />
<img src="3.gif" />
<img src="4.gif" />
<img src="5.gif" />
<img src="1.gif" />'
;
echo preg_replace('/<img(.*)>/', '.', $string, 4);

Спустя 28 минут, 20 секунд (3.04.2011 - 18:14) inpost написал(а):
$result = preg_replace('/.*{1}<img.*>/iU', '.', $string);

То есть мы четко указали, что перед <img> должен быть как минимум 1 любой символ, значит перый не подходит! При этом указали U, как не жадный модификатор.

Спустя 1 час, 9 минут, 34 секунды (3.04.2011 - 19:24) Rand написал(а):
inpost, не, так не прокатит. Скорее тогда так:
$result = preg_replace('/(?<!^)<img.*>/iU', '.', $string);
Т.е. если перед паттерном нету начала строки, то заменяем.
Неизвестно ещё, такая ли там строка у автора на самом деле, или он её для примера привел. Если первый img в середине текста, то тут другой вариант надо искать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.