URL:
urlencode(); //編碼
urldecode(); //解碼
URL與數組互轉:
parse_url ()
http_build_query()
base64:
base64_encode();
base64_decode();
JSON:
json_encode();
json_decode();
SESSION:
session_encode();
session_decode();
字符轉為HTML實體:
htmlentities() / html_entity_decode()
所有字符轉換為 HTML 實體
htmlspecialchars() / htmlspecialchars_decode()
將特殊字符"<" (小於)和 ">" (大於)轉換為 HTML 實體
uuencode編碼:
convert_uuencode();
convert_uudecode();
字符集編碼相互轉換:
iconv();
mb_convert_encoding();
字符寫入數據庫自動轉義:
// magic_quotes_runtime 相關函數在PHP 5.3.0中已 棄用,並且自PHP 7.0.0起已刪除
get_magic_quotes_runtime() 取得 PHP 環境變量 magic_quotes_runtime 的值。設置返回 1 或者 true
set_magic_quotes_runtime() 可以讓程序員在代碼中動態開啟或關閉 magic_quotes_runtime,
set_magic_quotes_runtime(1) 表示開啟,set_magic_quotes_runtime(0) 則表示關閉。當set_magic_quotes_runtime(1) 時,從數據庫或通過fread之類的函數讀取的文本,將自動對’ “和自動加上反斜杠進行轉義,防止溢出。這在對數據庫的數據進行轉移的時候非常有用。
但在一般情況下,應當將其關閉,否則從數據庫讀取出來的數據單引號、雙引號和反斜杠都會被加上,導致顯示不正常。像Discuz,PHPWind都在公共文件的頭部加上一句 set_magic_quotes_runtime(0); 強制關閉 magic_quotes_runtime 。
作用范圍:從文件中讀取的數據或執行exec()的結果或是從SQL查詢中得到的;
作用時間:每次當腳本訪問運行狀態中產生的數據.
字符轉義:
// 自PHP 5.3.0起,此功能已被棄用 ,自PHP 5.4.0 起已被 刪除。
magic_quotes_gpc
magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 數據自動運行 addslashes(),一般在數據入庫前要先進行轉義。不要對已經被 magic_quotes_gpc 轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測,如果 magic_quotes_gpc 為關閉時返回 0,否則返回 1。或者始終FALSE
從PHP 5.4.0開始返回。
作用范圍是:WEB客戶服務端;
作用時間:請求開始是,例如當腳本運行時。
反斜線轉義字符串:
addslashes() / stripslashes() 互為反函數
addslashes() 函數返回在預定義字符之前添加反斜杠的字符串。
預定義字符是:單引號('),雙引號("),反斜杠(\),NULL
指定字符前添加反斜杠:
addcslashes() / stripcslashes() 互為反函數
注釋:addcslashes() 函數對大小寫敏感。 以 C 語言風格使用反斜線轉義字符串中的字符。
注釋:對以下字符應用 addcslashes() 時請小心:0(NULL), r(回車), n(換行), f 換頁)、t(制表符)以及 v(垂直制表符)。在 PHP 中,\0, \r, \n, \t, \f 以及 \v 是預定義的轉義序列。
string addcslashes ( string $str , string $charlist )
返回字符串,該字符串在屬於參數 charlist 列表中的字符前都加上了反斜線。
如果 charlist 中包含有 \n,\r 等字符,將以 C 語言風格轉換,而其它非字母數字且 ASCII 碼低於 32 以及高於 126 的字符均轉換成使用八進制表示。