原因是PHP 裡面的 magic_quotes_gpc 選項被打開了。有關這個設定,可以參照這篇
如何瀘掉反斜線( \ )?
可以用下面這段code解決。做法是先判斷Server有沒有把magic_quotes_gpc這個選項打開。如果有的話,則將request裡每個key的value抓出來,執行stripslashes這個function瀘掉反斜線,再把改過的值填回request的key裡
if (get_magic_quotes_gpc() == 1){ foreach( $_REQUEST as $k => $v) { $_REQUEST[$k] = stripslashes($v); } }
另外有關雙引號與單引號的差別,這裡也順便寫一下,也免忘記
雙引號
包含在雙引號裡頭的可以是一般文字字串,可以含有單引號。如果含有變數的話,會以該變數的值代入。也允許以「\」代表跳脫(escape)字元。
\n:換行(newline)
\r:送出 CR(carriage)
\t:跳位(Tab)
\\:反斜線(backslash)
\$:錢字號(dollar sign)
\”:雙引號(double-quote)
\[0-7]{1,3}:八進位表示法的 regular expression
\x[0-9A-Fa-f]{1,2}:十六進位表示法的 regular expression
單引號
使用單引號要注意的是,在單引號中的變數不會以變數值代入。
另外,可以被 escape 的字元只有兩個:\’ 與 \\。