新聞中心
如何正確的理解PHP轉(zhuǎn)義是一個(gè)初學(xué)者比較困擾的問題。我們今天為大家簡(jiǎn)要的講述了PHP轉(zhuǎn)義的具體含義,希望有所幫助。PHP轉(zhuǎn)義一直困擾著我, 今天認(rèn)真的看了一下PHP手冊(cè), 終于解決了.#t#

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出江門免費(fèi)做網(wǎng)站回饋大家。
在PHP中默認(rèn)有一個(gè)"魔術(shù)引號(hào)"的開關(guān), 如果這個(gè)開關(guān)打開, 從外部轉(zhuǎn)入的$_GET, $_GET, $COOKIE都會(huì)PHP轉(zhuǎn)義.
比如:
http://localhost/test.PHP?test=1'
然后在test.PHP輸出時(shí)自動(dòng)轉(zhuǎn)義, 輸出如下:
var_dump($_GET['test'];
========output=======
string(3) "1\'"
所示 ' 號(hào)被加入了\轉(zhuǎn)義了.但這里有一個(gè)問題, 當(dāng)將這個(gè)值輸出到網(wǎng)頁(yè)時(shí)會(huì)看到滿屏的\, 這里可以使用另一個(gè)函數(shù), stripslashes 可以將\去除.
在手冊(cè)中的PHP轉(zhuǎn)義意思是說推薦不要開啟"魔術(shù)引號(hào)" 因?yàn)樾蕟栴}, 不這也有一個(gè)好處, 就是可以非常安全, 對(duì)于我這樣的新手來說.
關(guān)閉"魔術(shù)引號(hào)有三個(gè)方法, 因?yàn)檫@個(gè)是不可以PHP運(yùn)行進(jìn)關(guān)閉的, 也就是說不可以用ini_set().
1. 對(duì)PHP.ini設(shè)置.
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
2. 如果對(duì)系統(tǒng)無法修改可以使用 .htaccess
PHP_flag magic_quotes_gpc Off
3. 效率***的PHP轉(zhuǎn)義方法
- if (get_magic_quotes_gpc()) {
- function stripslashes_deep($value)
- {
- $value = is_array($value) ?
- array_map('stripslashes_deep', $value) :
- stripslashes($value);
- return $value;
- }
- $_POST = array_map('stripslashes_deep', $_POST);
- $_GET = array_map('stripslashes_deep', $_GET);
- $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
- }
- ?>
這里還要提到一個(gè)關(guān)于 SQL語(yǔ)句中有LIKE時(shí)對(duì)%的處理, 因?yàn)閍ddslashes對(duì)% _ 是不轉(zhuǎn)義的, 且這兩個(gè)字符在別的SQL語(yǔ)句也本來也不用轉(zhuǎn)義的, 所以我編了一個(gè)函數(shù) like_esc($value), 當(dāng)有LIKE語(yǔ)句時(shí)才使用.
對(duì)于輸出到網(wǎng)頁(yè)的先用stripslashes去\還要用htmlspecialchars轉(zhuǎn)義一下.
我現(xiàn)在有一個(gè)比較懶的PHP轉(zhuǎn)義方法也是對(duì)所有轉(zhuǎn)入的都轉(zhuǎn)義.
- if (!get_magic_quotes_gpc()) {
- function addslashes_deep($value)
- {
- $value = is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
- return $value;
- }
- $_POST = array_map('addslashes_deep', $_POST);
- $_GET = array_map('addslashes_deep', $_GET);
- $_COOKIE = array_map('addslashes_deep', $_COOKIE);
- }
網(wǎng)頁(yè)名稱:正確理解PHP轉(zhuǎn)義的真正含義
本文路徑:http://fisionsoft.com.cn/article/dphojjd.html


咨詢
建站咨詢
