La fonction en php str_replace remplace toutes les occurrences dans une chaîne.
Voici une astuce que j’ai trouvé sur
[stackoverflow](https://stackoverflow.com/questions/1252693/using-str-replace-so-that-it-only-acts-on-the-first-match) pour ne remplacer que la premiere chaine trouvée
Utiliser str_replace en php pour remplacer la premiere occurence d’une chaine de caractere
** 1ere fonction **
function str_replace_first($search, $replace, $subject) {
$pos = strpos($subject, $search);
if ($pos !== false) {
return substr_replace($subject, $replace, $pos, strlen($search));
}
return $subject;
}
** 2eme fonction **
function str_replace_first($search, $replace, $subject) {
return implode($replace, explode($search, $subject, 2));
}
### Les tests
J’ai chronométré les deux fonctions et la première est deux fois plus rapide lorsqu’aucune correspondance n’est trouvée. Ils sont à la même vitesse lorsqu’une correspondance est trouvée.
Modération subjective.