Помогите плизз решить проблему с регуляркой...
$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, не, так не прокатит. Скорее тогда так:
Неизвестно ещё, такая ли там строка у автора на самом деле, или он её для примера привел. Если первый img в середине текста, то тут другой вариант надо искать.
$result = preg_replace('/(?<!^)<img.*>/iU', '.', $string);Т.е. если перед паттерном нету начала строки, то заменяем.
Неизвестно ещё, такая ли там строка у автора на самом деле, или он её для примера привел. Если первый img в середине текста, то тут другой вариант надо искать.