Salut…
Je suis un peu en train de me battre avec les fonctions PHP qui permettent de remplacer des caractères spéciaux (é,à,<,>,&," etc) par leur code (é,<"e; etc) et inversement.
Sur mon site, avant de les rentrer dans la base SQL, je passe systématiquement tout texte rentré dans un formulaire avec :
nl2br() (uniquement si c’était dans un textarea) puis htmlentities(ENT_QUOTES)
Ainsi un texte comme ceci :
[cpp]
page spéciale
[/url][/cpp]
va devenir :
[cpp]<a href="page.php?a=1&p=2"$gt;
page spéciale
</a>[/cpp]
Ensuite sur certaines de mes pages, je veux inhiber le code HTML contenu dans ces champs, donc il me suffit de l’afficher tel quel.
echo $txt;[cpp]<a href="e;page.php?a=1&p=2"e;$gt;page spéciale</a>[/cpp]Affichage : page spéciale[/url] (sur le page HTML)
Mais sur d’autres pages, je tiens à ce que le code HTML soit interprété.[cpp]page spéciale[/url][/cpp]Affichage : page spéciale
Je ne vois pas comment faire ça car seulement certains caractères doivent changer (ceux correspondant aux balises), et les autres (texte ou placés entres guillemets), doivent rester codés.
Si j’utilise des fonctions PHP existantes, elles font tous les changements donc ça marche mais ce n’est pas très propre car un “é” va apparaitre comme ça dans le code au lieu d’apparaitre en “é”, de même pour un “&” qui ne sera pas un “&” et donc les normes W3C ne seront pas respectées…
Je ne sais pas si j’ai été clair, mais c’est un problème qui me prends un peu la tête ! :pt1cable: