使用URL 傳遞參數數據,就是在 URL地址后面加上適當的參數。URL 實體對這些參數進行處理。其使用的方式如下面的格式:
顯而易見,這種方法將會把參數暴露出來,安全系數較低。因此,這一章會針對該問題講述一種 URL 的編碼方式,對 URL 傳遞的參數進行編碼。
URL 編碼是一種瀏覽器用來打包表單輸入數據的格式,是對用地址欄傳遞參數進行的一種編碼規則。如在參數中帶有空格,則用 URL 傳遞參數時就會發生錯誤,而用 URL編碼后,空格轉換成%20.這樣錯誤就不會發生了。 對中文進行編碼也是童謠的情況,最主要的一點就是對傳遞的參數起到了隱藏的作用。
在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()函數編碼后的字符串進行了還原。
以上就是php對URL傳參進行編碼和解碼解析的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答