30-12-2004 21:25 Escaping in PHP
Всем вам давно известно, что стандартно в PHP эскейпинг происходит с помощью слэша: \

Если мы хотим вставить в строку символ табуляции, то мы пишем
print "abc\tabc";

Если мы хотим написать слэш, то мы должны его тоже заэскейпить:
print "abc\\abc";

А никто из вас не задумывался, что будет, если заэскейпить, например, букву "a" ?
print "abc\aabc";

А будет вот что: PHP попытается заэскейпить "a" и не найдет соответствующей замены для "\a"... Тогда он выведет в stdout сначала один слэш, а потом, символ "a", будто была введена строка
print "abc\\aabc";


Список замен с использованием \ внутри двойных кавычек ("...") в PHP таков:
sequence meaning
\n linefeed (LF or 0x0A (10) in ASCII)
\r carriage return (CR or 0x0D (13) in ASCII)
\t horizontal tab (HT or 0x09 (9) in ASCII)
\\ backslash
\$ dollar sign
\" double-quote
\[0-7]{1,3} the sequence of characters matching the regular expression is a character in octal notation
\x[0-9A-Fa-f]{1,2} the sequence of characters matching the regular expression is a character in hexadecimal notation
Закрыть