Aller au contenu

Pb traitement chaîne de caractères


MarvinLeRouge

Sujets conseillés

Salut,

J'ai à faire un traitement sur une chaîne de caractères : j'ai un tableau associatif contenant des variables, et je voudrais remplacer toutes les occurences de ces variables dans mon texte (qui sont sous une forme genre ***nomDeVariable***) par leur valeur dans ce tableau.

J'ai pensé utiliser un preg_match_all pour trouver les occurences, puis faire une boucle sur les résultats avec un str_replace.

J'aurais bien utilisé un preg_replace, mais je ne vois pas comment lui dire de remplacer chaque occurence par la variable correspondante.

Si quelqu'un a une idée pour améliorer ça, je suis preneur.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Moi et le php ça fait deux, mais je dirais pgrep_replace("/\*\*\* (\w)+ \*\*\*/e","\$tableau_assoc['\\1']",$text); non?

Voir http://www.php.net/manual/fr/function.preg-replace.php pour les détails. L'option "e" à la fin de la chaîne à remplacer indique que la chaîne de remplacement sera interprétée comme du code PHP.

Sinon ça doit être possible en séparant ton tableau associatif en deux tableaux, l'un avec les clefs (avec les *** autour), l'autre avec les valeurs, et passer les deux tables à pgrep_replace qui va remplacer chaque chaîne qui est dans le premier tableau par la chaîne au même index dans le tableau de destination.

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Oui, regarde l'exemple 2 de la doc.

Ca fait partie de la "magie de PHP", une fonction qui a un nom très explicite et un comportement fortement différent en fonction des paramètres... super simple à débuger.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...