Aller au contenu

Sujets conseillés

Posté

Bonjour à tous !

Je cherche à parser diverses urls dans un document, et éventuellement remplacer les esperluettes simples (&) par &.

Jusqu'ici, pas de souci, mais je n'arrive pas à ne pas capturer les &, ce qui fait que dans ce cas, je me retrouve avec des &, ce qui est fort désagréable.

Quelqu'un connaîtrait-il une astuce ?

Posté

Bonjour,

En mettant le code que tu as déjà réalisé tu auras certainement une réponse qui collera plus à ce que tu attends ;)

Maintenant tu peux éventuellement convertir tous les & en simple & avant de commencer le remplacement des autres &... ce n'est peut-être pas la solution la plus optimisée, mais c'est une solution tout de même (du moins si j'ai bien compris ce que tu souhaites).

Sinon il faut peut être regarder du côté des "Assertions", tu as une explication complète sur la syntaxe dans le manuel PHP.

Bonne chance.

*EDIT* Ben grillé quoi ;)

Posté

Le problème avec ces approches est qu'elles vont convertir é en é ... qui ne sera pas correctement interprété par les navigateurs.

Mais comme ce é n'est pas supposé se trouver dans une URL, ce sera bon... mais uniquement pour les URLs. ;)

Posté

C'est justement le problème qu'on résoud avec les assertion dans l'expression régulière... l'assertion sert à vérifier que les caractères avant ou après (selon la syntaxe) correspondent au sous-masque avec lequel elle est liée ;) En l'occurence on vérifie que ce qui se trouve après "&" ne correspondent pas à "amp;".

Mais effectivement si il y a d'autre autres entités HTML qui se trouvent dans le document, elles verront leur "&" remplacée par "&amp"... et c'est selon le premier message de captain_torche ce dont il avait besoin.

S'il faut prendre en compte toutes les entités ça va devenir plus difficile ;)

Veuillez vous connecter pour commenter

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



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