Comment remplacer la première occurence dans une chaine avec substr_replace

La fonction en php str_replace remplace toutes les occurrences dans une chaîne.

Voici une astuce que j’ai trouvé sur

stackoverflow 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.

dans Php  le   par  Renaud
Modifié le 

Qu'en pensez vous ?

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  Modération subjective.