Php, regex, un peu perdu…

Résolu
le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   -  
le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1 057
 
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   Statut Membre Dernière intervention   1 057
 
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