Forum und email
htmlspecialchars

htmlspecialchars

(PHP 3, PHP 4, PHP 5)

htmlspecialchars -- Převést zvláštní znaky na HTML entity

Popis

string htmlspecialchars ( string string [, int quote_style [, string charset]] )

Některé znaky mají v HTML zvláštní význam, a pokud si mají zachovat běžný význam, měly by být reprezentovány HTML entitami. Tato funkce vrací řetězec, ve kterém došlo k některým z těchto konverzí; provádějí se ty překlady, které jsou v každodenním programování pro web nejužitečnější. Pokud požadujete překlad všech znakových entit HTML, použijte htmlentities().

Tato funkce je užitečná, pokud se chcete chránit před případným výskytem HTML v textu dodaném uživateli, například u aplikací typu kniha hostů nebo diskusní skupina. Volitelný druhý argument, quote_style, určuje, co se má stát s jednoduchými a dvojitými uvozovkami. Defaultní mód, ENT_COMPAT, je zpětně kompatibilní mód, konvertuje pouze dvojité uvozovky a jednoduché uvozovky ponechává nepřeložené. Pokud zadáte ENT_QUOTES, přeloží se jednoduché i dvojité uvozovky, a pokud zadáte ENT_NOQUOTES, oba druhy zůstanou bez překladu.

Dochází k těmto překladům:

  • '&' (ampersand) se stává '&'

  • '"' (dvojitá uvozovka) se stává '"' when ENT_NOQUOTES is not set.

  • ''' (jednoduchá uvozovka) se stává ''' only when ENT_QUOTES is set.

  • '<' (menší než) se stává '&lt;'

  • '>' (větší než) se stává '&gt;'

Příklad 1. Ukázka htmlspecialchars()

<?php
$new
= htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo
$new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Poznámka: tato funkce provádí pouze výše uvedené překlady. Kompletní překlad entit viz htmlentities(). Volitelný druhý argument byl přidán v PHP 3.0.17 a PHP 4.0.3.

Třetí parametr charset definuje kódovou stránku použitou pro převod. Výchozí kódová stránka je ISO-8859-1. Třetí parametr je k dispozici od PHP 4.1.0.

Viz také get_html_translation_table(), strip_tags(), htmlentities() a nl2br().