章 31. 魔術引號

魔術引號(Magic Quote)是一個自動將進入 PHP 腳本的資料進行轉義的過程。最好在編碼時不要轉義而在運行時根據需要而轉義。

什麼是魔術引號

當開啟時,所有的 '(單引號),"(雙引號),\(反斜線)和 NULL 字元都會被自動加上一個反斜線進行轉義。這和 addslashes() 作用完全相同。

一共有三個魔術引號指令:

  • magic_quotes_gpc

    影響到 HTTP 請求資料(GET,POST 和 COOKIE)。不能在運行時改變。在 PHP 中預設值為 on

    參見 get_magic_quotes_gpc()

  • magic_quotes_runtime

    若果開啟的話,大部份從外部來源取得資料並返回的函數,內含從資料庫和文字檔案,所返回的資料都會被反斜線轉義。該選項可在運行的時改變,在 PHP 中的預設值為 off

    參見 set_magic_quotes_runtime()get_magic_quotes_runtime()

  • magic_quotes_sybase

    若果開啟的話,將會使用單引號對單引號進行轉義而非反斜線。此選項會完全覆蓋 magic_quotes_gpc。若果同時開啟兩個選項的話,單引號將會被轉義成 ''。而雙引號、反斜線 和 NULL 字元將不會進行轉義。

    如何取得其值參見 ini_get()