1. 對URL 傳遞的參數進行編碼
#使用URL 傳遞參數數據,就是在 URL位址後面加上適當的參數。 URL 實體會對這些參數進行處理。其使用的方式如下面的格式:
顯而易見,這種方法將會把參數暴露出來,安全係數較低。因此,這一章會針對這個問題講述一種 URL 的編碼方式,對 URL 傳遞的參數進行編碼。
URL 編碼是一種瀏覽器用來打包表單輸入資料的格式,是對用網址列傳遞參數進行的一種編碼規則。如在參數中帶有空格,則用 URL 傳遞參數時就會發生錯誤,而用 URL編碼後,空格轉換成%20.這樣錯誤就不會發生了。 對中文編碼也是童謠的情況,最主要的一點就是對傳遞的參數起到了隱藏的作用。
推薦手冊:php完全自學手冊
# 在PHP 中對查詢字串進行URL 編碼,可以透過urlencode()函數實現,該函數的語法如下:
urlencode(string)
urlencode()函數實作將字符串string 進行URL 編碼。
在下面的實例中,應用 urlencode()函數對URL 傳遞的參數值進行編碼,顯示的字串是
URL 編碼後的字串,其實現的程式碼如下所顯示:
<?php $url = urlencode('PHP中文网'); //把 PHP中文网 进行编码 echo "index.php?id=".$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 $url = urldecode("PHP%E4%B8%AD%E6%96%87%E7%BD%91"); // 把编码还原成 PHP中文网 echo $url; ?>
運行的結果如下所示:
#PHP中文網
這裡就可以清楚的看出urldecode() 函數把urlencode()函數編碼後的字串進行了還原。
相關文章推薦:
1.PHP如何使用urlencode()函數進行url編碼? (程式碼範例)
2.PHP怎麼對Url中的漢字進行編碼和解碼? (圖文+影片)
相關影片推薦:
1.獨孤九賤(4)_PHP影片教學
以上是php對URL傳參進行編碼與解碼解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!