Articles

Le mois de la fonction PHP : décodez moi cet entité

  • Ecrit par Julien Pauli
  • samedi 21 avril 2007
Image pour le titre du contenu

This document is also available in English en 

html_entity_decode() est l'inverse de htmlentities() : elle convertit les entités HTML d'une chaîne en caractères normaux. Une table de convertion est présentée ici, ou via get_html_translation_table()

Exemple 1 - Scinder une chaine encodée issue d'une base de données :

html_entity_decode() est utilisée dans le but de récupérer une chaine originale, depuis une chaine html encodée.

<?php
 
$mystring = mysql_result($mysql_query,1);
 
$chaine = wordwrap(html_entity_decode($mystring,ENT_QUOTES,'ISO-8859-1'),50); 
 
// on d&eacute;code la chaine, pour ne pas "compter" les caract&egrave;res encod&eacute;s
 
echo $chaine;
 
?>
 

Exemple 2 - Utilisation de la table de transformation en décodage :

htmlentities() permet de se protéger efficacement contre les attaques de types XSS

<?php
 
function decode($text){
 
    $trans_tbl = get_html_translation_table(HTML_ENTITIES,ENT_COMPAT);
 
    $trans_tbl = array_flip($trans_tbl);
 
    $text = strtr($text, $trans_tbl);
 
    return $text;
 
}
 
?>
 

Exemple 3 - Protection contre le XSS :

<?php
$bad_str_posted_on_forum = "<script>alert('XSS attack!')</script>";
$display_forum = htmlentities($bad_str_posted_on_forum,ENT_QUOTES,'ISO-8859-1');
echo $display_forum;
?>
 
<strong>A m&eacute;moriser
 
</strong>
< Précédent   Suivant >

Commentaires

Vous pouvez ajouter votre commentaire!


Vous devez vous connecter pour commenter