PHP 轉義與反轉義函數

來源:互聯網
上載者:User
php向mysql資料庫插入資料進行轉義包括兩方面的操作,第一方面需要在添加資料時通過資料轉義將資料寫入庫中,第二方面在將資料顯示在頁面時需要再次將資料恢複為原始狀態,即反轉義。

一、資料轉義
mysql_escape_string($content)
二、反轉義
stripslashes($content)
以上兩行代碼即可實現php向mysql資料庫插入資料轉義操作。
get_magic_quotes_gpc()

在PHP中get_magic_quotes_gpc()函數是內建的函數,這個函數的作用就是得到php.ini設定中magic_quotes_gpc選項的值。

那麼就先說一下magic_quotes_gpc選項:
如果magic_quotes_gpc=On,PHP解析器就會自動為post、get、cookie過來的資料增加逸出字元“\”,以確保這些資料不會引起程式,特別是資料庫語句因為特殊字元引起的汙染而出現致命的錯誤。

在magic_quotes_gpc=On的情況下,如果輸入的資料有
單引號(’)、雙引號(”)、反斜線(\)與 NUL(NULL 字元)等字元都會被加上反斜線。這些轉義是必須的,如果這個選項為off,那麼我們就必須調用addslashes這個函數來為字串增加轉義。

正是因為這個選項必須為On,但是又讓使用者進行配置的矛盾,在PHP6中刪除了這個選項,一切的編程都需要在 magic_quotes_gpc=Off下進行了。在這樣的環境下如果不對使用者的資料進行轉義,後果不僅僅是程式錯誤而已了。同樣的會引起資料庫被注入攻擊的危險。所以從現在開始大家都不要再依賴這個設定為On了,以免有一天你的伺服器需要更新到PHP6而導致你的程式不能正常工作。

當magic_quotes_gpc=On的時候,函數get_magic_quotes_gpc()就會返回1
當magic_quotes_gpc=Off的時候,函數get_magic_quotes_gpc()就會返回0

因此可以看出這個get_magic_quotes_gpc()函數的作用就是得到環境變數magic_quotes_gpc的值。既然在PHP6中刪除了magic_quotes_gpc這個選項,那麼在PHP6中這個函數我想也已經不複存在了。


addslashes()

addslashes() 函數在指定的預定義字元前添加反斜線。

這些預定義字元是:

* 單引號 (')
* 雙引號 (")
* 反斜線 (\)
* NULL

文法

addslashes(string)

StripSlashes()

去掉反斜線字元。

文法: string stripslashes(string str);

傳回值: 字串

函數種類: 資料處理

本函數可去掉字串中的反斜線字元。若是連續二個反斜線,則去掉一個,留下一個。若只有一個反斜線,就直接去掉。

如果不知道有沒有設定可以這樣做:
function stringFilter($str){    if (!empty($str)) {    if (ini_set('magic_quotes_gpc')) {      return $str;    }else{      return addslashes($str);    }  }else{    return false;  }} 



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.