PHP函數講解:get_magic_quotes_gpc()使用方法

來源:互聯網
上載者:User
get_magic_quotes_gpc

取得 PHP 環境變數 magic_quotes_gpc 的值,屬於 PHP 系統功能。

文法: long get_magic_quotes_gpc(void);

傳回值: 長整數

這個函數做什麼的。

本函數取得 PHP 環境配置的變數 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示關閉本功能;返回 1 表示本功能開啟。當 magic_quotes_gpc 開啟時,所有的 ' (單引號), " (雙引號), (反斜線) and Null 字元會自動轉為含有反斜線的溢出字元。

在php的設定檔中,有個布爾值的設定,就是magic_quotes_runtime。當它開啟時,php的大部分函數自動的給從外部引入的(包括資料庫或者檔案)資料中的溢出字元加上反斜線。 當然如果重複給溢出字元加反斜線,那麼字串中就會有多個反斜線,所以這時就要用set_magic_quotes_runtime()與get_magic_quotes_runtime()設定和檢測php.ini檔案中magic_quotes_runtime狀態。

為了使自己的程式不管伺服器是什麼設定都能正常執行。可以在程式開始用get_magic_quotes_runtime檢測該設定的狀態決定是否要手工處理,或者在開始(或不需要自動轉義的時候)用set_magic_quotes_runtime(0)關掉該設定。

magic_quotes_gpc設定是否自動為GPC(get,post,cookie)傳來的資料中的'"\加上反斜線。可以用get_magic_quotes_gpc()檢測系統設定。如果沒有開啟這項設定,可以使用addslashes()函數添加,它的功能就是給資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字元)。

一般用法如下:
1 if(!get_magic_quotes_gpc())
2 {
3     addslashes($prot);
4 }
在手冊中string addslashes ( string str )介紹的時候有這樣一句話說明了get_magic_quotes_gpc的用法以及作用。預設情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 資料自動運行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。

其實這個函數就是判斷PHP有沒有自動調用addslashes 這個函數:

最土團購系統裡的magic_gpc
01

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.