Posts Tagged ‘String’

[PHP] 為何Server收到HTTP Request時,參數的值多了反斜線( \ )!?

Thursday, March 25th, 2010

原因是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 的字元只有兩個:\’ 與 \\。