色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php header注意

PHP中的header()函數(shù)是一個(gè)非常有用的函數(shù),它可以向客戶端發(fā)送一個(gè)HTTP頭部消息,這個(gè)消息可以是一個(gè)狀態(tài)碼,也可以是一個(gè)重定向的URL。然而,在使用header()函數(shù)時(shí),需要注意一些細(xì)節(jié),否則就會出現(xiàn)意外的錯(cuò)誤。

首先,需要注意的是,在header()函數(shù)之前,不應(yīng)該輸出任何內(nèi)容。這是因?yàn)閔eader()函數(shù)只能在發(fā)送HTTP頭部之前被使用,而如果在header()函數(shù)之前有任何輸出,那么就會導(dǎo)致HTTP頭部發(fā)送失敗。

下面的代碼就是一個(gè)典型的錯(cuò)誤示范:

上面的代碼中,先輸出了一個(gè)“Hello World!”的字符串,然后使用header()函數(shù)要求瀏覽器進(jìn)行重定向。這個(gè)代碼在大部分情況下都會導(dǎo)致一個(gè)PHP警告“Cannot modify header information - headers already sent by...”,因?yàn)镠TTP頭部已經(jīng)在輸出“Hello World!”之后被發(fā)送了。

要避免這個(gè)問題,應(yīng)該在任何輸出或者HTML標(biāo)簽之前使用PHP的ob_start()函數(shù),將所有輸出緩沖到一個(gè)緩沖區(qū),并在header()函數(shù)之前使用ob_end_flush(),把所有輸出立即發(fā)送到瀏覽器。

下面是一個(gè)正確的例子:

其次,header()函數(shù)在發(fā)送HTTP頭部時(shí),必須是在PHP腳本的開頭位置。這是因?yàn)镠TTP標(biāo)頭本質(zhì)上只是在HTTP響應(yīng)的前幾個(gè)字節(jié)中發(fā)送的。

下面的代碼演示了在腳本的中間使用header()函數(shù)的錯(cuò)誤示范:

如上所述,HTTP頭部是請求的前幾個(gè)字節(jié),但是在這個(gè)示例中,some_function()函數(shù)可能會輸出一些內(nèi)容,這樣就會導(dǎo)致在發(fā)送HTTP頭部之前有輸出的問題。如果確實(shí)需要在腳本的中間使用header()函數(shù),那么可以使用PHP的output buffering(緩沖輸出)功能來解決:

最后,需要注意一些特殊的HTTP頭部,例如允許跨域資源共享(CORS)的header。在這種情況下,只使用header()函數(shù)是不夠的,還需要設(shè)置一些附加的屬性,例如Access-Control-Allow-Origin,Access-Control-Allow-Methods等等。

下面是一個(gè)簡單的例子:

總之,在使用header()函數(shù)時(shí),需要注意以上幾點(diǎn)細(xì)節(jié),這樣才能避免一些意料之外的錯(cuò)誤。