header location主要用于實現(xiàn)跳轉(zhuǎn)或指定網(wǎng)頁的內(nèi)容,當(dāng)瀏覽器接受到頭信息中的 Location: xxxx 后,執(zhí)行PHP將直接跳到指向的URL地址。這有點類似用 js 寫跳轉(zhuǎn),但是這個跳轉(zhuǎn)只有瀏覽器知道,無論內(nèi)容里有沒有東西,用戶都看不到,那么header location如何用?
一、header location 的具體用法
header('Location: https://www.lxwl520.com/');
其作用是:當(dāng)執(zhí)行這句腳本時,會直接跳轉(zhuǎn)到對應(yīng)的網(wǎng)址,即Location: 后面的網(wǎng)址。
二、讓瀏覽器顯示header頭部的location
使用location對象可以通過很多方式來改變?yōu)g覽器的位置。首先,也是最常用的方式,就是使用assign()方法并為其傳遞一個URL,如下所示:
location.assign(" http://www.lxwl520.com");
這樣,就可以立即打開新URL并在瀏覽器的歷史記錄中生成一條記錄。如果是將location.href或window.location設(shè)置為一個URL值,也會以該值調(diào)用assign()方法。例如,下列兩行代碼與顯式調(diào)用assign()方法的效果完全一樣:
window.location="http://www.lxwl520.com";
location.;
在這些改變?yōu)g覽器位置的方法中,最常用的是設(shè)置location.href屬性。另外,修改location對象的其他屬性也可以改變當(dāng)前加載的頁面。
三、header location 使用注意事項
1、要求header前沒有任何輸出
但是很多時候在header前我們已經(jīng)輸出了好多東西了,此時如果再次header的話,顯然是出錯的,在這里我們啟用了一個ob的概念,ob的意思是在服務(wù)器端先存儲有關(guān)輸出,等待適當(dāng)?shù)臅r機再輸出,而不是像現(xiàn)在這樣運行一句,輸出一句,發(fā)現(xiàn)header語句就只能報錯了。
具體的語句有: ob_start(); ob_end_clean();ob_flush();.........
2、在header("Location:")后要及時exit
否則他是會繼續(xù)執(zhí)行的,雖然在瀏覽器端你看不到相應(yīng)的數(shù)據(jù)出現(xiàn),但是如果你進行抓包分析的話,你就會看到下面的語句也是在執(zhí)行的。而且被輸送到了瀏覽器客戶端,只不過是沒有被瀏覽器執(zhí)行為html而已(瀏覽器執(zhí)行了header進行了轉(zhuǎn)向操作)。