程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 淺析rawurlencode()和urlencode()函數區別

淺析rawurlencode()和urlencode()函數區別

編輯:關於PHP編程

本文章來給大家介紹關於rawurlencode()和urlencode()函數區別用法介紹,各位朋友可參考。

 

今天在閱讀開源代碼時發現了一個URL的編碼函數:rawurlencode(),以前一直沒有注意過,因為在平時的開發上主要使用的是 urlencode(),故專門研究了一番。

其實這兩個函數的區別很簡單,它們兩個都會把URL中的非英文字符進行轉義,替換成"%"後跟兩位十六進制數,不同的是:rawurlencode 遵守是94年國際標准備忘錄RFC 1738,對空格的轉義是'%20′;而urlencode的編碼實現的是傳統做法,和POST表單數據一樣會把空格轉義成"+"號。

舉個例子:
如果URL地址源的形式是:http://www.bKjia.c0m 編碼區別
rawurlencode($url):
http%3A%2F%2Fityizhan.com%2FPHP%20%E7%BC%96%E7%A0%81%E5%8C%BA%E5%88%AB%2B
urlencode($url):
http%3A%2F%2Fityizhan.com%2FPHP+%E7%BC%96%E7%A0%81%E5%8C%BA%E5%88%AB%2B

從這個例子中可以很明顯的看出二者的區別,如果我們想給編碼的URL解碼的話,可以使用這兩個函 數:rawurldecode(),urldecode() 。在實際的開發中為了避免URL格式不統一,還是推薦大家使用rawurlencode()來進行URL的編碼。

同樣的操作在Javascript也有一些區別,大家可以參考:javascript的URL編碼與反編碼, 裡面講述了Javascript中escape(), encodeURI() ,encodeURIComponent()的編碼使用

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved