Jak v PHP převést HTML entity (&nnn;) na normální znaky

Obsah
Při práci s HTML kódem se může stát, že se ve výstupu zobrazují místo běžných znaků HTML entity, například á
místo písmena á. Pokud je potřeba tyto entity převést zpět na normální znaky v PHP, existuje několik funkcí, které tento problém snadno vyřeší.
Funkce html_entity_decode()
Nejpoužívanější funkcí pro převod HTML entit na normální znaky je html_entity_decode()
. Tato funkce převede všechny HTML entity zpět na jejich odpovídající znaky.
Ukázka kódu
$text = "á é í ó ú";
$decoded_text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
echo $decoded_text; // výstup: á é í ó ú
Parametry funkce html_entity_decode()
- $text – vstupní řetězec s HTML entitami.
- ENT_QUOTES – převádí jednoduché i dvojité uvozovky.
- 'UTF-8' – nastavuje správné kódování znaků.
Další možnost: htmlspecialchars_decode()
Pokud potřebujeme převést pouze základní speciální znaky jako &
, <
, >
atd., můžeme použít htmlspecialchars_decode()
.
Příklad:
$text = "<p>Toto je á é í ó ú </p>";
$decoded_text = htmlspecialchars_decode($text);
echo $decoded_text; // výstup: <p>Toto je á é í ó ú </p>
Odstranění HTML značek a entit
Pokud chceme odstranit nejen HTML entity, ale také všechny HTML tagy, můžeme zkombinovat html_entity_decode()
se strip_tags()
.
Příklad:
$text = "<p>Toto je á é í ó ú </p>";
$clean_text = strip_tags(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
echo $clean_text; // výstup: Toto je á é í ó ú
Závěr
Převod HTML entit na normální znaky v PHP je snadný díky funkcím html_entity_decode()
a htmlspecialchars_decode()
. Pokud navíc potřebujeme odstranit i HTML značky, můžeme použít strip_tags()
. Správné použití těchto funkcí zajistí, že náš text bude čitelný a správně formátovaný.