header("Location:")作為php的轉(zhuǎn)向語句。其實(shí)在使用中,他有幾點(diǎn)需要注意的地方。
1、要求header前沒有任何輸出
但是很多時(shí)候在header前我們已經(jīng)輸出了好多東西了,但是此時(shí)如果再次header的話,顯然是出錯(cuò)的,在這里我們啟用了一個(gè)ob的概念,這個(gè)東東的意思是在服務(wù)器端先存儲(chǔ)有關(guān)輸出,等待適當(dāng)?shù)臅r(shí)機(jī)再輸出,而不是像現(xiàn)在這樣運(yùn)行一句,輸出一句,發(fā)現(xiàn)header語句就只能報(bào)錯(cuò)了。
具體的語句有: ob_start(); ob_end_clean();ob_flush();.........
2、在header("Location:")后要及時(shí)exit
否則他是會(huì)繼續(xù)執(zhí)行的,雖然在瀏覽器端你看不到相應(yīng)的數(shù)據(jù)出現(xiàn),但是如果你進(jìn)行抓包分析的話,你就會(huì)看到下面的語句也是在執(zhí)行的。而且被輸送到了瀏覽器客戶端,只不過是沒有被瀏覽器執(zhí)行為html而已(瀏覽器執(zhí)行了header進(jìn)行了轉(zhuǎn)向操作)。
所以,標(biāo)準(zhǔn)的使用方法是:
ob_start();
........
if ( something ){
ob_end_clean();
header("Location: yourlocation");
exit;
else{
..........
ob_flush(); //可省略
}
新聞熱點(diǎn)
疑難解答
圖片精選