在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} 此正則表達式序列匹配一個用十六進制符號表示的字符