I have a string with structure similar to: 'aba aaa cba sbd dga gad aaa cbz'. The string can be a bit different each time as it's from an external source.
I would like to replace only first occurrence of 'aaa' but not the others. Is it possible?
I have a string with structure similar to: 'aba aaa cba sbd dga gad aaa cbz'. The string can be a bit different each time as it's from an external source.
I would like to replace only first occurrence of 'aaa' but not the others. Is it possible?
 
    
     
    
    The optional fourth parameter of preg_replace is limit:
preg_replace($search, $replace, $subject, 1);
 
    
    You can use the limit argument of preg_replace for this and set it to 1 so that at most one replacement happens:
$new = preg_replace('/aaa/','replacement',$input,1);
 
    
    for example, out $content is:
START 
FIRST AAA 
SECOND AAA
1) if you use:
$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);
it will change everything from the START to the last AAA and Your result will be:
REPLACED_STRING
2) if you use:
$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);
Your Result will be like:
REPLACED_STRING 
SECOND AAA
