首頁  >  文章  >  後端開發  >  php對URL傳參進行編碼與解碼解析

php對URL傳參進行編碼與解碼解析

伊谢尔伦
伊谢尔伦原創
2017-04-20 13:48:0221199瀏覽

1. 對URL 傳遞的參數進行編碼

#使用URL 傳遞參數數據,就是在 URL位址後面加上適當的參數。 URL 實體會對這些參數進行處理。其使用的方式如下面的格式:

php對URL傳參進行編碼與解碼解析

顯而易見,這種方法將會把參數暴露出來,安全係數較低。因此,這一章會針對這個問題講述一種  URL 的編碼方式,對 URL 傳遞的參數進行編碼。

  URL 編碼是一種瀏覽器用來打包表單輸入資料的格式,是對用網址列傳遞參數進行的一種編碼規則。如在參數中帶有空格,則用 URL 傳遞參數時就會發生錯誤,而用 URL編碼後,空格轉換成%20.這樣錯誤就不會發生了。 對中文編碼也是童謠的情況,最主要的一點就是對傳遞的參數起到了隱藏的作用。

推薦手冊php完全自學手冊

# 在PHP 中對查詢字串進行URL 編碼,可以透過urlencode()函數實現,該函數的語法如下:

urlencode(string)

urlencode()函數實作將字符串string 進行URL 編碼。

在下面的實例中,應用 urlencode()函數對URL 傳遞的參數值進行編碼,顯示的字串是

URL 編碼後的字串,其實現的程式碼如下所顯示:

在瀏覽器中輸入運行位址,按下回車鍵,得到如下圖的運行結果:

index.php?id=PHP%E4%B8 %AD%E6%96%87%E7%BD%91

說明:

對於伺服器而言,編碼前後的字串並沒有什麼區別,伺服器能夠自動識別。這裡主要是為了講解 URL編碼的使用方法。在實際應用中,對一些非保密性的參數不需要編碼,讀者可根據實際情況有選擇的使用。

2. 對URL 傳遞的參數進行解碼

#對於 URL 傳遞的參數直接使用 $_GET[] 方法即可取得。 而對於進行過 URL加密的查詢字串,則需要透過 urldecode() 函數對取得後的字串進行解碼。此函數的語法如下:

urldecode(string)

#urldecode() 函數可將 URL 編碼後的 string 字串進行編碼。

上面的例子中urlencode()函數把“PHP中文網” 編碼,變成了“PHP%E4%B8%AD%E6%96%87%E7%BD%91”

這裡的範例應用urlencode() 函數對取得的編碼進行解碼,將解碼後的結果輸出來。其實現的程式碼如下所示:

運行的結果如下所示:

#PHP中文網

這裡就可以清楚的看出urldecode() 函數把urlencode()函數編碼後的字串進行了還原。

相關文章推薦:           
1.PHP如何使用urlencode()函數進行url編碼? (程式碼範例)
2.PHP怎麼對Url中的漢字進行編碼和解碼? (圖文+影片)
相關影片推薦:
1.獨孤九賤(4)_PHP影片教學

以上是php對URL傳參進行編碼與解碼解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn