oujood.com

Utilisation de get_html_translation_table() en PHP

Découvrez comment utiliser la fonction get_html_translation_table() en PHP pour gérer les entités HTML et les caractères spéciaux. Guide complet avec exemples pratiques.

La fonction get_html_translation_table()


PHP references des fonctions PHP

PHP Version: 4
Évolution :
- PHP 5 :La valeur par défaut du paramètre de jeu de caractères a été changée en UTF-8 .
- PHP 5.3.4: Le paramètre de jeu de caractères a été ajouté
- PHP 5.4: Les drapeaux additionnels pour spécifier le doctype de la table ; ENT_HTML401, ENT_HTML5, ENT_XML1 et ENT_XHTML ont été ajoutés .
- PHP 8.1.0: flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars() et htmlentities()

Astuce : Certains caractères peuvent être codés de différentes manières. La fonction get_html_translation_table() retourne l'encodage le plus courant.

La fonction get_html_translation_table()

get_html_translation_table() fonction php: Définition et utilisation

La fonction get_html_translation_table() renvoie la table de conversion employée par les  fonctions htmlentities () et  htmlspecialchars ().

get_html_translation_table() fonction php: Syntaxe

get_html_translation_table(fonction,quotestyle,character-set)
.
Paramètre Description

fonction

Facultatif. Spécifie quelle table de conversion à retourner. Par défaut c’est HTML_SPECIALCHARS. Valeurs possibles :

  • HTML_ENTITIES - Traduit tous les caractères qui ont besoin d'URL-codage pour être montré correctement sur un HTML page
  • HTML_SPECIALCHARS - Traduit quelques caractères qui ont besoin d'URL-codage pour être montré correctement sur un HTML page
  • Indicateurs supplémentaires permettant de spécifier le doctype du tableau :
    ENT_HTML401 - Par défaut. Tableau pour HTML 4.01
    ENT_HTML5 - Table pour HTML 5
    ENT_XML1 - Table pour XML 1
    ENT_XHTML - Table pour XHTML

quotestyle

Facultatif. Définit comment coder des guillemets simples et. Par défaut est ENT_COMPAT
Valeurs possibles :

  • ENT_COMPAT - Code des guillemets, apostrophes
  • ENT_QUOTES - Code de doubles et apostrophes
  • ENT_NOQUOTES - Ne code pas des citations simples ou doubles
character-set Facultatif. Chaîne qui spécifie quel jeu de caractères utiliser.
Les valeurs autorisées sont :
  • UTF-8 - par défaut. ASCII compatible Unicode codés sur plusieurs octets de 8 bits
  • ISO-8859-1 - Europe occidentale
  • ISO-8859-15 - Europe de l'Ouest (ajoute le signe Euro + anglais et finnois lettres manquantes en ISO-8859-1)
  • cp866 - charset cyrillique spécifique DOS
  • cp1251 - charset cyrillique spécifiques à Windows
  • cp1252 - charset spécifique de Windows pour l'Europe occidentale
  • KOI8-R - russe
  • BIG5 - chinois traditionnel, utilisé principalement à Taiwan
  • GB2312 - simplifiée des caractères standard chinois, national
  • BIG5-HKSCS - Big5 avec extensions de Hong Kong
  • Shift_JIS - japonais
  • EUC-JP - japonais
  • MacRoman - jeu de caractères utilisé par Mac OS
Remarque : Les jeux de caractères non reconnus seront ignorées et remplacées par ISO-8859-1 dans les versions de PHP antérieures à 5.4. À partir de PHP 5.4, il sera ignoré et remplacé par UTF-8

Notes :
Les caractères spéciaux peuvent être encodés de différentes façon. Exemple. " peut être encodé comme ", " ou &#x22". get_html_translation_table() retourne uniquement la forme la plus courante d'encodage.
 Exemple1

Dans cet exemple nous affichons les deux tables de conversion. :

Exemple :       Copier le code

<?php
print_r (get_html_translation_table());
echo "<br /><br />";
print_r (get_html_translation_table(HTML_ENTITIES));
?>
Exemple2

Exemple avec la table de traduction des caractères en entités HTML. :

Exemple :       Copier le code

<?php
$trans = get_html_translation_table(HTML_ENTITIES);
$chaine = "Hallo & <Frau> & Krämer";
$encoded = strtr($chaine, $trans);
echo $encoded;
?>

Voici quelques exemples pratiques supplémentaires d'utilisation de la fonction PHP get_html_translation_table() :

Exemple 1: Personnalisation des entités HTML

Exemple :       Copier le code

<?php
// Obtient la table de traduction des entités HTML
$table = get_html_translation_table(HTML_SPECIALCHARS);

// Ajoute une entité HTML personnalisée pour le symbole copyright (©)
$table['©'] = '©';

// Convertit le texte avec les nouvelles entités personnalisées
$text = "Le symbole copyright est représenté par © dans HTML.";
$encoded_text = strtr($text, $table);

echo $encoded_text;
?>

Exemple 2: Conversion sélective d'entités HTML

Exemple :       Copier le code

<?php
// Obtient la table de traduction des entités HTML complètes
$table = get_html_translation_table(HTML_ENTITIES);

// Supprime l'entité HTML pour le symbole dollar ($)
unset($table['$']);

// Convertit le texte en préservant uniquement les autres entités
$text = "Le prix de ce produit est de 20$.";
$encoded_text = strtr($text, $table);

echo $encoded_text;
?>

Astuces et conseils d'utilisation

- La table retournée par get_html_translation_table() peut être utilisée pour effectuer des remplacements personnalisés dans le contenu HTML.

- L'utilisation des flags tels que ENT_HTML401 ou ENT_HTML5 peut influencer le comportement des entités générées.

- Avant PHP 8.0.0, la fonction get_html_translation_table() utilisait la constante HTML_SPECIALCHARS comme valeur par défaut pour le paramètre $table. Cependant, depuis PHP 8.0.0, c'est devenu une erreur de ne pas fournir cette valeur explicitement.

Utilisez la fonction get_html_translation_table() avec précaution et assurez-vous de bien comprendre son fonctionnement avant de l'utiliser dans vos projets.

Par carabde 22 Aout 2014

Voir aussi nos tutoriel :

HTML et CSS les tableaux

HTML et CSS: Cours tutoriel les tableaux...

Fonction addslashes, addslashes

Ajoute des antislashs dans une chaîne

L'Attribut class

Spécifie un ou plusieurs noms de classe pour un élément (qui fait référence à une classe dans une feuille de style)