Htmlspecialchars / htmlentities double encode [Résolu]

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

Merci Flachy Joe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Flachy Joe
Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Dernière intervention
27 avril 2012
- 26 mars 2009 à 20:04
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 -

Merci kohntark 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de kohntark
Messages postés
3
Date d'inscription
vendredi 18 novembre 2011
Dernière intervention
15 mars 2012
- 12 janv. 2012 à 00:51
0
Merci
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.