PHP快速入門 特殊字元轉義

2021-06-28 13:20:49 字數 1367 閱讀 5858

1. addslashes

addslashes對sql語句中的特殊字元進行轉義操作,包括(『), (「), (), (nul)四個字元,此函式在dbms沒有自己的轉義函式時候使用,但是如果dbms有自己的轉義函式,那麼推薦使用原裝函式,比如mysql有mysql_real_escape_string函式用來轉義sql。 注意在php5.3之前,magic_quotes_gpc是預設開啟的,其主要是在$get, $post, $cookie上執行addslashes操作,所以不需要在這些變數上重複呼叫addslashes,否則會double escaping的。不過magic_quotes_gpc在php5.3就已經被廢棄,從php5.4開始就已經被移除了,如果使用php最新版本可以不用擔心這個問題。stripslashes為addslashes的unescape函式。

2. htmlspecialchars

htmlspecialchars把html中的幾個特殊字元轉義成html entity(格式:&***x;)形式,包括(&),(『),(「),(<),(>)五個字元。

& (and) => &

」 (雙引號) => " (當ent_noquotes沒有設定的時候)

『 (單引號) => ' (當ent_quotes設定)

< (小於號) => <

> (大於號) => >

htmlspecialchars可以用來過濾$get,$post,$cookie資料,預防xss。注意htmlspecialchars函式只是把認為有安全隱患的html字元進行轉義,如果想要把html所有可以轉義的字元都進行轉義的話請使用htmlentities。htmlspecialchars_decode為htmlspecialchars的decode函式。

3. htmlentities

htmlentities把html中可以轉義的內容轉義成html entity。html_entity_decode為htmlentities的decode函式。

4. mysql_real_escape_string

mysql_real_escape_string會呼叫mysql的庫函式mysql_real_escape_string,對(\x00), (\n), (\r), (), (『), (\x1a)進行轉義,即在前面新增反斜槓(),預防sql注入。注意你不需要在讀取資料庫資料的時候呼叫stripslashes來進行unescape,因為這些反斜槓是在資料庫執行sql的時候新增的,當把資料寫入到資料庫的時候反斜槓會被移除,所以寫入到資料庫的內容就是原始資料,並不會在前面多了反斜槓。

5. strip_tags

strip_tags會過濾掉nul,html和php的標籤。

6. 結語

php自帶的安全函式並不能完全避免xss,推薦使用html purifier

php中的特殊字元轉義 php特殊字元轉義詳解

html array html username htmlentities clean username ent quotes,utf 8 echo welcome back,複製 小提示htmlspecialchars 函式與htmlentities 函式基本相同,它們的引數定義完全相同,只不過是...

php去除富文字特殊字元轉義

html實體字元對照表擷取了一部分 這些編碼的格式 十六進製制 十進位制 是將字元對應的ascii碼轉成10 16進製制加上之後形成。在富文字去除html標籤的時候單引號 轉化成了 解決方式是 先使用preg replace res content preg replace 0 9 e chr 1 ...

轉義字元與特殊字元

1 常見的轉義字元 c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都表示的不是它本來的ascii字元意思。轉義字元 意義ascii碼值 十進位制 a響鈴 bel b退格 bs 將當前位置移到前一列 f換頁 ff 將當前位置移到下頁...