« 73. PHP 如何讀取系統的環境變數? | (回到Blog入口) | 75. PHP 如何列印 URL 字串? »

74. 為什麼要做 URL 的解碼與編碼?

jollen 發表於 October 27, 2006 8:04 PM

CGI 程式與參數直接寫成 URL 時,為了能清楚分辨字元,在傳送前,瀏覽器會將 URL 做編碼的工作,例如:

http://www.jollen.org/guestbook/post.php?name=Chen Jin-Hong&email=jollen <jollen@o3.net>

實際上,這行 URL 會被編碼成:

http://www.jollen.idv.tw/guestbook/post.php?name=Chen+Jin-Hong&email=jollen %3Cjollen@o3.net%3E

空格的地方會以 "+" (加號) 取代,特殊字元會被轉換成對應的 ASCII 十六進位碼,所以 < 與 > 分別被編碼成 %3C 與 %3E。

當 CGI 程式讀進資料時,首要工作就是要進行解碼的工作,幸運的是,PHP 會自動幫我們做這件工作,所以我們不用擔心資料的解碼工作。

以上面的 URL 為例,在 PHP 裡,就可以經由 $name 與 $email 兩個 global 變數直接讀取傳入的資料。

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org