J'ai une chaîne avec une structure similaire à: 'aba aaa cba sbd dga gad aaa cbz'
. La chaîne peut être un peu différente à chaque fois car elle provient d'une source externe.
Je voudrais remplacer seulement la première occurrence de 'aaa'
mais pas les autres. C'est possible?
Le quatrième paramètre facultatif de preg_replace est limit
:
preg_replace($search, $replace, $subject, 1);
Vous pouvez utiliser l'argument limit
de preg_replace
pour cela et le définir sur 1
afin qu'au moins un remplacement survienne
$new = preg_replace('/aaa/','replacement',$input,1);
par exemple, out $ content est:
START
FIRST AAA
SECOND AAA
1) si vous utilisez:
$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);
cela va tout changer du début au dernier AAA et votre résultat sera:
REPLACED_STRING
2) si vous utilisez:
$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);
Votre résultat sera comme:
REPLACED_STRING
SECOND AAA