Php, regex, un peu perdu…

Résolu/Fermé
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 - 28 août 2009 à 21:11
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 - 28 août 2009 à 22:30
Bonjour à tous!
J'essaie de remplacer du texte avec une regex en PHP, mais je suis complètement perdu là…

J'ai un champ de texte, et je voudrais que quand on tape le signe "&" il soit remplacé par "&".
Ça j'ai réussis. Le problème vient que j'utilise pas mal des caractères spéciaux nécessitant l'utilisation des codes Unicode…

Bien-sur, ces codes Unicode commencent tous pas "&".

Je veux faire en sorte que tous les "&" soient remplacés, mais pas lorsque je tapes un des caractères…

Je tentes la de faire une variable qui teste si on doit ou non remplacer le "&", et ensuite de d'utiliser "preg_replace" si il faut et seulement si il faut…


Pour cela, je test si le "&" est suivi d'un "#" ou pas. S'il est suivi par le dièse, on ne doit pas le remplacer (c'est alors un code Unicode) sinon, on doit le remplacer…



Un petit coup de main serait grandement apprécié, parce que là, je sait plus par où commencer… Merci!
A voir également:

2 réponses

le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
28 août 2009 à 21:29
PS : au dessus, c'est bien
je voudrais que quand on tape le signe "&" il soit remplacé par "&".



Pour être plus clair, je voudrais que

-si le caractère "&" est suivi d'un "#" on le laisse,

-sinon, on le remplace par "&"

Et je sait pas comment on fait pour tester si un "#" suit un "&"…

merci…
0
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
28 août 2009 à 22:30
Bon… J'ai réussi^^

(Comme quoi, faire une pause un moment et reprendre la tête vide ça aide… (on fait une pause, puis on pose)… dsl… je m'emporte…


bon voici le truc : (c'est pas compliqué en plus)


function ampamp($texte) {

$texte_sans_amp = preg_replace('#&#', '&', $texte);
//on remplace tout les & par &


$texte_corrige = preg_replace('#&\##', '&#', $texte_sans_amp);
//on re-remplace tous les &# par &#

return $texte_corrige;
}



Désolé d'avoir fait un topic pour rien… en espérant que ça aide…

-merci moi
-derien moi
-je t'en pris moi…

:-)
0