日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

[转] PHP 转义与反转义函数

發布時間:2025/3/15 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转] PHP 转义与反转义函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自:?http://blog.csdn.net/domingoluis/article/details/6620888

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

返回值: 字符串

函數種類: 資料處理

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

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


<span style="font-weight: normal;">function stringFilter($str){
if (!empty($str)) {
if (ini_set('magic_quotes_gpc')) {
return $str;
}else{
return addslashes($str);
}
}else{
return false;
}
} </span>

總結

以上是生活随笔為你收集整理的[转] PHP 转义与反转义函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。