preg_replace поиск первого вхождения выражения

kos

Новичок
preg_replace поиск первого вхождения выражения

Что бы было понятней опишу на примере:

PHP:
$begin_="<!--BEGIN IF:".$row[$i]."-->";
$end_="<!--END IF:".$row[$i]."-->";
$this->files["$files_id"]=preg_replace("/".$begin_.".*".$end_."/s","",$this->files["$files_id"]);

PHP:
$row[$i]
-идентификатор.
Если блок с одним и тем же идентификатором встречается в строке несколько раз, то замена происходит по последнему.
Возможно ли что бы замена была по первому.
Пример строки:
<!--BEGIN IF:detail--><a href="index.php?p={P}&detail={ID}&table={TABLE}"><!--END IF:detail-->{TITLE}<!--BEGIN IF:detail--></a><!--END IF:detail-->

Как получить
{TITLE}<!--BEGIN IF:detail--></a><!--END IF:detail-->

использовать strpos не хочется очень горомозко, подскажите плз как обойтись preg_replace
 

uchenik

Новичок
Re: preg_replace поиск первого вхождения выражения

у функции preg_replace() есть четвертый необязательный параметр, которым можно указать количество замен.

тебе нужна 1 замена, тоесть preg_replace( , , , 1)
 

DiMA

php.spb.ru
Команда форума
с жадностью - не все
и более того, необходимо preg_quote для аргумента использовать, читаем ман
 
Сверху