Articles
This document is also available in English
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écode la chaine, pour ne pas "compter" les caractères encodé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émoriser
</strong>
- Attention au choix du jeu de caractères d'arrivée en PHP :
- html_entity_decode(), htmlentities(), get_html_translation_table() et htmlspecialchars()
- Si cette fonction est très utile en français pour gérer les accents et autres caractères spéciaux, ainsi que pour d'autres langues européennes, elle est plus rarement utile en anglais.
| < Précédent | Suivant > |
|---|
Commentaires
Vous pouvez ajouter votre commentaire! |
Vous devez vous connecter pour commenter


