mysql斜槓轉義php PHP 轉義與反轉義函式

2021-10-18 10:02:06 字數 1510 閱讀 6541

php向mysql資料庫插入資料進行轉義包括兩方面的操作,第一方面需要在新增資料時通過資料轉義將資料寫入庫中,第二方面在將資料顯示在頁面時需要再次將資料恢復為原始狀態,即反轉義。

一、資料轉義

1 mysql_escape_string($content)

二、反轉義

1 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);

返回值: 字串

函式種類: 資料處理

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

如果不知道有沒有設定可以這樣做:

1 function stringfilter($str)else8 }else11 }

MySQL中反斜槓轉義應用

問題描述 mysql中帶有反斜槓的內容入庫後,發現反斜槓無故失蹤了 俗話說被吃掉了 例 插入insert into tb url values absc eeee 結果資料庫裡的內容是 absceeee 反斜槓沒了呢 這麼詳細了相信大家都搞清楚問題了吧,下面看解決方案 insert into tb ...

筆記 json去除正斜槓轉義

json doesn t require you to do that,it allows you to do that.it also allows you to use u0061 for a but it s not required.allowing helps when embedding...

QSettings 與中文(反斜槓 轉義)

本文介紹的是qsettings的 iniformat 截止目前 qt4.7 對中文的支援情況,如果你想實現自己定義格式 比如 中文 中文 中文 這樣 可參看qsettings 自定義格式qt4.4 包含 之前 先看個例子 結果如下 setcion key x6211 x662f x6c49 x5b5...