PHP addslashes()函數(shù)的具體應(yīng)用解析
我們通過(guò)對(duì)PHP語(yǔ)言的學(xué)習(xí),體會(huì)到了PHP這門計(jì)算機(jī)高級(jí)語(yǔ)言的強(qiáng)大的功能。我們?cè)谶@篇文章中將會(huì)為大家介紹有關(guān)PHP addslashes()函數(shù)的相關(guān)用法。
#t#定義和用法
addslashes() 函數(shù)在指定的預(yù)定義字符前添加反斜杠。
這些預(yù)定義字符是:
單引號(hào) (')
雙引號(hào) (")
反斜杠 (\)
NULL
語(yǔ)法
c
參數(shù) 描述
string 必需。規(guī)定要檢查的字符串。
提示和注釋
提示:該函數(shù)可用于為存儲(chǔ)在數(shù)據(jù)庫(kù)中的字符串以及數(shù)據(jù)庫(kù)查詢語(yǔ)句準(zhǔn)備合適的字符串。
注釋:默認(rèn)情況下,PHP 指令 magic_quotes_gpc 為 on,對(duì)所有的 GET、POST 和 COOKIE 數(shù)據(jù)自動(dòng)運(yùn)行 addslashes()。不要對(duì)已經(jīng)被 magic_quotes_gpc 轉(zhuǎn)義過(guò)的字符串使用 addslashes(),因?yàn)檫@樣會(huì)導(dǎo)致雙層轉(zhuǎn)義。遇到這種情況時(shí)可以使用函數(shù) get_magic_quotes_gpc() 進(jìn)行檢測(cè)。
例子
在本例中,我們要向字符串中的預(yù)定義添加反斜杠:
- < ?php
- $str = "Who's John Adams?";
- echo $str . " This is not safe in a database query.
- < br />";
- echo addslashes($str) . " This is safe in a database query.";
- ?>
輸出:
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
一個(gè)使用 addslashes() 的例子是當(dāng)你要往數(shù)據(jù)庫(kù)中輸入數(shù)據(jù)時(shí)。例如,將名字 O'reilly 插入到數(shù)據(jù)庫(kù)中,這就需要對(duì)其進(jìn)行轉(zhuǎn)義。大多數(shù)據(jù)庫(kù)使用 \ 作為轉(zhuǎn)義符:O\'reilly。這樣可以將數(shù)據(jù)放入數(shù)據(jù)庫(kù)中,而不會(huì)插入額外的 \。當(dāng) PHP 指令 magic_quotes_sybase 被設(shè)置成 on 時(shí),意味著插入 ' 時(shí)將使用 ' 進(jìn)行轉(zhuǎn)義。
默認(rèn)情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對(duì)所有的 GET、POST 和 COOKIE 數(shù)據(jù)自動(dòng)運(yùn)行 addslashes()。不要對(duì)已經(jīng)被 magic_quotes_gpc 轉(zhuǎn)義過(guò)的字符串使用 addslashes(),因?yàn)檫@樣會(huì)導(dǎo)致雙層轉(zhuǎn)義。遇到這種情況時(shí)可以使用函數(shù) get_magic_quotes_gpc() 進(jìn)行檢測(cè)。