Speciální řídící znaky v PHP

📅   24. 11. 2021
👤   Jan Barášek

V PHP řetězcích mohou být obsaženy speciální řídící znaky, které mají v určitém kontextu různý význam a nechovají se nutně jako obyčejné znaky.

Řadu z nich budete již intuitivně znát. Některé jsou vyhrazeny pro speciální použití a jiné třeba pro znaky na klávesnici.

Zápis speciálních znaků

Speciální znaky se zapisují do dvojitých uvozovek.

Stačí tedy velmi jednoduše:

$message = "Hello\nworld.";

Předchozí kód obsahuje zalomení řádku mezi slovem Hello a world.

Tabulka speciálních znaků

Pokud je řetězec uzavřen ve dvojitých uvozovkách ("), bude PHP interpretovat následující escape sekvence jako speciální znaky:

Sekvence Význam
\n linefeed (LF nebo 0x0A (10) v ASCII)
\r carriage return (CR nebo 0x0D (13) v ASCII)
\t horizontal tab (HT nebo 0x09 (9) v ASCII)
\v vertical tab (VT nebo 0x0B (11) v ASCII)
\e escape (ESC nebo 0x1B (27) v ASCII)
\f form feed (FF nebo 0x0C (12) v ASCII)
\\ backslash
\$ dollar sign (znak dolaru)
\" double-quote (dvojitá uvozovka)
\[0-7]{1,3} posloupnost znaků odpovídající regulárnímu výrazu je znak v osmičkové notaci, který se v tichosti přeteče do bajtu. (např. "\400" === "\000")
\x[0-9A-Fa-f]{1,2} posloupnost znaků odpovídající regulárnímu výrazu je znak v hexadecimálním zápisu.
\u{[0-9A-Fa-f]+} posloupnost znaků vyhovující regulárnímu výrazu je kódový bod Unicode, který bude vypsán do řetězce jako reprezentace tohoto kódového bodu v UTF-8.

Stejně jako u řetězců s jednoduchými uvozovkami se při escapování jakéhokoli jiného znaku vypíše i zpětné lomítko.

Při ohraničení řetězců pomocí uvozovek nezapomeňte na fakt, že obsažené proměnné budou expandovány (vypsány hodnoty proměnných přímo do řetězce). Toto chování může být extrémně nebezpečné.

Nechte si posílat nové články do mailu:

Jan Barášek     Více o autorovi

Autor článku podniká jako senior software architekt v Praze. Navrhuje a spravuje velké webové ekosystémy, které znáte a používáte. Během mnoha let nabral hluboké zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Kontakt Konzultace a služby