Htmlspecialchars / htmlentities double encode [Résolu]

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
- - Dernière réponse : kapakasimoise
Messages postés
3
Date d'inscription
vendredi 18 novembre 2011
Statut
Membre
Dernière intervention
15 mars 2012
- 12 janv. 2012 à 00:51
Salut à tous,

Plutôt que de m'arracher les cheveux un peu plus je fais appel à vos lumières :

Pourquoi ça :
$str = '
machin
';
echo htmlspecialchars($str, ENT_QUOTES, 'UTF-8', false);

m'encode également les balises html ??
(même chose avec htmlentities)

Test effectué sur Vista 64 bits, PHP 5.2.8

Thanks à celui qui laissera la nature s'occuper de ma perte de cheveux (elle fait déjà bien les choses )

Kohntark -
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
23 septembre 2018
1
3
Merci
C'est le fonctionnement normal de ces fonctions de remplacer les caractères pouvant être interprété en HTML par des codes pour les "échapper" :
< devient & lt ;
> devient & gt ;
etc
cf : http://www.php.net/manual/fr/function.htmlentities.php

Flachy Joe

« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. » Les Shadoks<

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Flachy Joe
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
20
3
Merci
Salut Flachy Joe,

Grrrr, en voulant te répondre je viens de m'apercevoir de ma connerie :
"Lorsque <tt class= "parameter">double_encode</tt>
est désactivé, PHP n'encodera pas
les entités html existantes. Par défaut, tout est convertie."
=>
et non pas, comme je l'avais interprété :
Lorsque <tt class="parameter">double_encode</tt>
est désactivé, PHP n'encodera pas
les tags html existantes. Par défaut, tout est convertie. 

Ca m'avait semblé bizarre aussi de ne pas avoir prêté attention à ce quatrième argument plus tôt. Le but initial étant de trouver une façon très simple d'encoder tous les caractères elligibles sauf les balises, par exemple :

htmlspecialchars('chui fatigué', ENT_QUOTES, 'UTF-8', false);
=> qui donnerait la chaîne de caractères :
chui fatigu&eacute;

thanks de m'avoir fait remarqué ma connerie.

Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
3
Date d'inscription
vendredi 18 novembre 2011
Statut
Membre
Dernière intervention
15 mars 2012
0
Merci
En tout courage
Commenter la réponse de kapakasimoise