IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

htmlspecialchars - Český PHP manuál

Klíčová funkce, která převede speciální znaky v textu na HTML entity. Mezi speciální znaky patří: '&', '"', "'", '<', '>'. Tato funkce je velmi důležitá a měla by být použita při výpisu většiny proměnných, aby nedošlo k narušení HTML dokumentu znaky od uživatele, případně aby nedošlo rovnou k XSS útoku.

Parametry

String pro převod. Jako druhý parametr můžeme uvést tzv. flagy. Jedná se o konstanty měnící chování funkce. Konstanty můžeme spojovat pomocí |. Jejich seznam je následující:

ENT_COMPAT Převede uvozovky a apostrofy ponechá.
ENT_QUOTES Převede uvozovky i apostrofy.
ENT_NOQUOTES Ponechá uvozovky i apostrofy.
ENT_IGNORE Vymaže neplatné znaky na pozadí. Toto nastavení je nebezpečné, protože tak může dojít k XSS.
ENT_SUBSTITUTE Nahradí neplatné znaky na pozadí znakem s otazníkem.
ENT_DISALLOWED Nahradí znaky, které jsou normálně platné, ale nejsou platné pro daný doctype znakem s otazníkem.
ENT_HTML401 Zpracovává kód jako HTML 4.01.
ENT_XML1 Zpracovává kód jako XML 1.
ENT_XHTML Zpracovává kód jako XHTML.
ENT_HTML5 Zpracovává kód jako HTML 5.

Výchozí nastavení bez uvedení parametrů je ENT_COMPAT | ENT_HTML401.

Další nepovinný parametr je kódování, nejčastěji 'UTF-8'. Pozor, před PHP 5.4 je výchozí ISO-8859-1, od 5.4 je to UTF-8.

Příklad

<?php
$s = 'Vítej ve fóru, tvůj problém vyřeší tag </body>, nemáš totiž ukončené body.';
echo htmlspecialchars($s);

Výstup:

Vítej ve fóru, tvůj problém vyřeší tag &lt;/body&gt;, nemáš totiž ukončené body.

Bez prohnání výstupu funkcí htmlspecialchars by samozřejmě došlo k vložení tagu </body> do stránky a tím k jejímu narušení.

Funkce nepřeloží všechny znaky, pro které existují entity, jen ty základní. Pokud potřebujete převést všechny (což většinou ne, protože dojde např. k rozbití diakritiky), použijte funkci htmlentities.


 

Všetky články v sekcii
Textové řetězce - Český PHP manuál
Článok pre vás napísal David Hartinger
Avatar
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity