PHP在指定的預定義字元前新增反斜槓

2021-06-26 04:41:50 字數 2271 閱讀 8273

定義和用法

addslashes() 函式在指定的預定義字元前新增反斜槓。

這些預定義字元是:

單引號 (')

雙引號 (")

反斜槓 (\)

null

語法

addslashes(string)

例子:在本例中,我們要向字串中的預定義字元新增反斜槓:

<?php $str = "who's john adams?"; echo $str . " this is not safe in a database query.

"; 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.

與php字串轉義相關的配置和函式如下: 

1.magic_quotes_runtime 

2.magic_quotes_gpc 

3.addslashes()和stripslashes() 

4.mysql_escape_string() 

5.addcslashes()和stripcslashes() 

6.htmlentities() 和html_entity_decode() 

7.htmlspecialchars()和htmlspecialchars_decode()

當magic_quotes_runtime開啟時,php的大部分函式自動的給從外部引入的(包括資料庫或者檔案)資料中的溢位字元加上反斜線。 

可以使用set_magic_quotes_runtime()與get_magic_quotes_runtime()?設定和檢測其狀態。 

注意:php5.3.0以上的版本已將這兩個函式廢棄,也就說在php5.3.0或以上版本時該選項已經為關閉了。 

? magic_quotes_gpc設定是否自動為gpc(get,post,cookie)傳來的資料中的某些字元進行轉義, 

可以使用get_magic_quotes_gpc()檢測其設定。 

如果沒有開啟這項設定,可以使用addslashes()函式新增給字串進行轉義

addslashes()? 在指定的預定義字元前新增反斜槓。 

預定義字元包括單引號(')、雙引號(")、反斜線(\)與 nul(null 字元)。 

以上是w3school.com.cn給出的解釋俺一直覺的不是很準確 

因為在magic_quotes_sybase=on時它將單引號(')轉換成雙引號(") 在magic_quotes_sybase=off時才將單引號(')轉換成(\') 

stripslashes()函式的功能與addslashes()?正好相反,它的功能是去除轉義的效果。

mysql_escape_string() 轉義 sql語句中使用的字串中的特殊字元。? 

這裡的特殊包括(\x00)、( \n)、( \r )、(\)、( ')、 (")、( \x1a)

addcslashes()?以c 語言風格使用反斜線轉義字串中的字元,這個函式很少人去用,但是應該注意的是:當選擇對字元 0,a,b,f,n,r,t 和 v 進行轉義時,它們將被轉換成 \0,\a,\b,\f,\n,\r,\t 和 \v。在 php 中,只有 \0(null),\r(回車符),\n(換行符)和 \t(製表符)是預定義的轉義序列, 而在 c 語言中,上述的所有轉換後的字元都是預定義的轉義序列。同理stripcslashes()的功能就是去除其轉義。

htmlentities() 把字元轉換為 html 實體。(什麼是html實體?自己google吧~~) 

具體引數請見這裡,其逆反的函式html_entity_decode() -?把 html 實體轉換為字元。

htmlspecialchars()函式把一些預定義的字元轉換為 html 實體。 

這些預定義的字元是: 

& (和號) 成為 & 

" (雙引號) 成為 " 

' (單引號) 成為 ' 

< (小於) 成為 < 

> (大於) 成為 > 

?詳細引數請見這裡,其逆反函式是htmlspecialchars_decode() 把一些預定義的 html 實體轉換為字元。

PHP中的預定義常量 預定義變數 魔術常量

php中的預定義常量 預定義變數 魔術常量 1 預定義常量 核心預定義常量 是在php的核心中就定義好了的常量。區分大小寫。php version 內建常量,php程式的版本,如3.0.8 dev php os 內建常量,執行php解析器的作業系統名稱,如windows。php eol 系統換行符,...

PHP常用的預定義常量

echo php常用的預定義常量 echo 當前php的版本為 php version php version.echo 當前所使用的作業系統型別 php os php os.echo web伺服器與php之間的介面為 php sapi php sapi.echo 最大的整型數 php int ma...

預定義的集合元字元

使用目前提供的工具可以完成很多任務作。但是,要使用 0 9 表示模式中的每個數值數字,或 更糟 使用 0 9a za z 表示任何字母數字字元,還有一段相當漫長的過程。為了減輕處理這些常用但冗長模式的痛苦,事先定義了預定義元字元集合。正規表示式的不同實現定義了不同的預定義元字元集合,下面描述的預定義...