php 編碼和解碼的函數


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 的字符均轉換成使用八進制表示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM