Htmlspecialchars / htmlentities double encode [Résolu]

kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 26 mars 2009 à 18:29 - Dernière réponse : kapakasimoise 3 Messages postés vendredi 18 novembre 2011Date d'inscription 15 mars 2012 Dernière intervention
- 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

Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 26 mars 2009 à 19:25
+3
Utile
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<
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Flachy Joe
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 26 mars 2009 à 20:04
+3
Utile
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 -
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de kohntark
kapakasimoise 3 Messages postés vendredi 18 novembre 2011Date d'inscription 15 mars 2012 Dernière intervention - 12 janv. 2012 à 00:51
0
Utile
En tout courage
Commenter la réponse de kapakasimoise

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.