PHP的url傳值學習筆記

2021-08-31 04:52:19 字數 2063 閱讀 6303

1. 頁面中的原始碼在顯示在瀏覽器的時候, 瀏覽器會解釋 html 轉義符號

因此如果要顯示特殊字元,如 『<』,』>』等,在原始碼中可以是<>

2. php在echo進行顯示的時候,如果要顯示『<』,』>』

可以這樣處理echo htmlspecialchars(『<>』);

htmlspecialchars 可以處理以下字元'&' ,'"', ''' , '<' , '>'

# '&' (ampersand) becomes '&'

# '"' (double quote) becomes '"' when ent_noquotes is not set.

# ''' (single quote) becomes ''' only when ent_quotes is set.

# '<' (less than) becomes '<'

# '>' (greater than) becomes '>'

3. 當要手動構造url的時候的方法

echo "\n";

但是要把構造的url用於js的跳轉,則不能用htmlspecialchars(詳情見5.)

4. ie,firefox會對href=」url」 的url進行un_htmlspecialchars(滑鼠移上去後可以在瀏覽器狀態列看到)也就是因為html會自動認識象"&"這樣的實體

然後提交的時候還會 進行urlencode()變數然後提交

php中的含義是:除了-_.

之外的所有非字母數字字元都將被替換成百分號(%

)後跟兩位十六進製制數,空格則編碼為加號(+

)。#號比較特殊,如果要傳輸#號,可以在url欄輸入%23 或者使用3.的方法

5. 但是在js中window.location=」url」的url中如果存在"&"這樣的字元就不會正常進行跳轉了,原因是js"&"只是把他們看作正常字元而已

但是都會進行urlencode()然後提交(滑鼠移上去後可以在瀏覽器狀態列看到)

所以使用php變數在js中嵌入url位址時要特別注意

6. 當提交時,不論是 get 或者 post 方法,資料都會被瀏覽器進行 urlencode 來傳輸(第5點),並直接被 php urldecode。所以最終不需要自己處理任何 urlencoding/urldecoding,全都是自動處理的。

get方法方便直觀,缺點是訪問該**的使用者也可以修改url串後傳送給伺服器,如果程式處理得不夠好很容易出錯,而且get傳遞的字串長度不能超過250個字元,如果超長,瀏覽器會自動截斷,導致資料缺失。另外,get方法不支援ascii字元之外的任何字元,比如包含有漢字或其他非 ascii字元時,需要使用額外的編碼操作,雖然有時候瀏覽器也能自動完成(可以使用url_encode和url_decode函式)。

post方法傳送變數資料時,對於使用者來說是不透明的,按http協議來說,資料附加於header的頭資訊中,使用者不能隨意修改,這對於web應用程式而言,安全性要好得多,而且使用post可以傳送大體積的資料給web伺服器。

因為post是隨http的header資訊一起傳送的,當觸發post表單提交後,如果使用者瀏覽頁面時單擊「後退」按鈕,瀏覽器不會自動重發 post資料。如果使用者此時單擊「重新整理」按鈕,將會有「資料已經過期,是否重新提交表單」的提示,這一點不如get使用方便。使用get傳值時,即便使用者使用「後退」或「重新整理」按鈕,瀏覽器的url位址也是仍然存在的。

因此,我們在開發中需要根據實際應用靈活選擇get和post來提交表單資料。

值得一提的是,如果在html中缺少表單結束標記,那麼整個表單是不會觸發任何提交動作的。在實際開發時,一些粗心的人會發現單擊按鈕沒有任何反映,其實細心檢查一下表單的**就可以了,有時即使少寫了乙個html字元,瀏覽器也不會替我們幹活的。

8.index.php?a=urlencode(' ');

urldecode( '+' ) = ' ';

urlencode 將空格則編碼為加號(+)。

rawurlencode將空格替換成百分號(%)後跟兩位十六進製制數

可以使用rawurlencode()與rawurldecode()來避免這個錯誤

9.urlencode()

html 傳值之url 傳值

今天做h5的時候 由於loaclstorage 中不想寫太多的東西 vardata1 json.stringify data 將object 型別的data轉換 與這個相反的是json.parse data location.href next.html?txt data1 這個 是因為我的資料中有...

URL傳值符號轉換

有些符號在url中是不能直接傳遞的,如果要在url中傳遞這些特殊符號,那麼就要使用他們的編碼了。下表中列出了一些url特殊符號及編碼 十六進製制值1 url 中 號表示空格 2b2 空格url中的空格可以用 號或者編碼 203 分隔目錄和子目錄 2f4 分隔實際的 url 和引數 3f5 指定特殊字...

URL 傳值符號轉換

有些符號在url中是不能直接傳遞的,如果要在url中傳遞這些特殊符號,那麼就要使用他們的編碼了。下表中列出了一些url特殊符號及編碼 十六進製制值1 url 中 號表示空格 2b 2空格 url中的空格可以用 號或者編碼 20 3 分隔目錄和子目錄 2f 4?分隔實際的 url 和引數 3f 5 指...