在PHP中,有两个函数与字符串的转义有关,他们分别是 addslashes 和 stripslashes。
addslashes($string), 在指定的预定义字符前添加反斜杠 (\),用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。
注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
stripslashes($string),是addslashes()的反函数,用于删除由 addslashes() 函数添加的反斜杠以还原被转义的字符,也叫反转义,主要用于清理从数据库或 HTML 表单中取回的数据。
那么 addslashes 会对哪些字符进行转义呢,如下:
单引号 (') 双引号 (") 反斜杠 (\) NULL
另外,以单引号为定界符的字符串,支持两个转义字符:
单引号 (') 反斜杠 (\)
以双引号为定界符的字符串,支持下列转义:
\n 换行 (LF 或 ASCII 字符 0x0A (10)) \r 回车 (CR 或 ASCII 字符 0x0D (13)) \t 水平制表符 (HT 或 ASCII 字符 0x09 (9)) \\ 反斜线 \$ 美元符号 \" 双引号 \[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符 \x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符