get_html_translation_table în PHP

Returnează tabelul de conversie caracter => entitate folosit de htmlspecialchars sau htmlentities.

Sintaxă
get_html_translation_table(int $table = HTML_SPECIALCHARS, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, string $encoding = 'UTF-8'): array

Ce face get_html_translation_table

get_html_translation_table îți arată exact ce caractere transformă htmlspecialchars (cu HTML_SPECIALCHARS) sau htmlentities (cu HTML_ENTITIES). Cheile tabloului sunt caracterele, iar valorile sunt entitățile.

Tabelul poate fi folosit cu strtr pentru conversii personalizate, de exemplu dacă vrei să transformi doar o parte din caractere.

Parametri

Parametru Descriere
$table Opțional. HTML_SPECIALCHARS (implicit) sau HTML_ENTITIES.
$flags Opțional. Aceleași opțiuni ENT_* ca la htmlspecialchars.
$encoding Opțional. Codarea. Implicit UTF-8.

Ce returnează

Un tablou caracter => entitate.

Exemple

Exemplul 1: Ce transformă htmlspecialchars

<?php
print_r(get_html_translation_table(HTML_SPECIALCHARS));

Rezultat

Array
(
    ["] => &quot;
    [&] => &amp;
    ['] => &#039;
    [<] => &lt;
    [>] => &gt;
)

Exemplul 2: Câte caractere are tabelul complet

<?php
$tabel = get_html_translation_table(HTML_ENTITIES);

echo count($tabel) . " caractere\n";
echo $tabel["€"] . " " . $tabel["é"] . " " . ($tabel["ș"] ?? "ș nu are entitate");

Rezultat

253 caractere
&euro; &eacute; ș nu are entitate

Greșeli frecvente

  • Folosești tabelul ca să inversezi conversia cu array_flip. Este mai simplu și mai corect să folosești htmlspecialchars_decode sau html_entity_decode.

Comenzi înrudite

  • htmlspecialchars: Transformă caracterele speciale HTML în entități, ca textul să fie afișat în siguranță în pagină.
  • htmlentities / html_entity_decode: Transformă în entități HTML toate caracterele care au o entitate (é devine &eacute;). html_entity_decode face operația inversă.
  • strtr: Înlocuiește caractere sau texte după o listă de perechi, fără să înlocuiască de două ori același loc.