pluj | Les fonctions de remplacement de chaînes acceptent généralement des tableaux de chaînes maintenant.
Avec str_replace il y a tout de même un potentiel problème : il faut s'assurer de remplacer, par exemple %10 avant %1 sinon le %10 va être substitué par la valeur de %1 avec un 0 derrière (et ainsi de suite avec toutes les dizaines, centaines et ainsi de suite)
A moins d'être sûr et certain de ne pas aller au-delà de %9.
J'aurais opté pour preg_replace_callback de façon à prendre le plus grand nombre possible via la gourmandise (par défaut) des motifs qui permet de s'affranchir de cet inconvénient :
Code :
$string = "Bonjour %1, vous êtes %10."; $replacements = [ '%1'=>'Charles', '%10'=>'grand', ]; '~%\d+~', function ($m) use($replacements) { }, $string );
|
Citation :
Bonjour Charles, vous êtes grand.
Bonjour Charles, vous êtes Charles0.
|
Message édité par pluj le 24-10-2019 à 00:03:29
|