在編寫 PHP 程序時(shí),很多時(shí)候我們需要向?yàn)g覽器發(fā)送一些信息,如文件內(nèi)容、重定向等。而這些信息需要通過 HTTP 標(biāo)頭(header)或會話 cookie 實(shí)現(xiàn)。
PHP 中提供了內(nèi)置函數(shù) header() 來控制 HTTP 標(biāo)頭,讓我們可以更加方便地向?yàn)g覽器發(fā)送信息。
PHP header 函數(shù)的語法如下:
header ( string $string , bool $replace = true , int $http_response_code = 0 );其中,第一個(gè)參數(shù)為需要發(fā)送的標(biāo)頭字符串;第二個(gè)參數(shù)為可選參數(shù),表示是否替代之前相同類型的標(biāo)頭;第三個(gè)參數(shù)則是可選的 HTTP 狀態(tài)碼。 我們可以通過如下的示例代碼向?yàn)g覽器發(fā)送一個(gè)簡單的 HTTP 頭信息:
<?php header('Content-Type: text/plain'); ?>Hello, World!上述代碼是向?yàn)g覽器發(fā)送一個(gè)包含文本信息的頁面,Content-Type 告訴瀏覽器響應(yīng)內(nèi)容的 MIME 類型(這里是純文本)。 當(dāng)我們使用 header 函數(shù)發(fā)送 HTTP 標(biāo)頭時(shí),也可以發(fā)送更多的內(nèi)容,如下:
<?php header('X-Powered-By: PHP/7.2.2'); header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); ?>{"message": "Hello, World!"}上述代碼除了向?yàn)g覽器發(fā)送響應(yīng)內(nèi)容外,還發(fā)送了多種不同類型的 HTTP 標(biāo)頭信息。我們可以看到,通過使用不同的標(biāo)頭,可以在響應(yīng)處理過程中為瀏覽器提供更多的信息。 除了上面列舉的 Content-Type 和 Access-Control-Allow-Origin 這些常見的標(biāo)頭,自定義標(biāo)頭也是常見的操作。如下示例代碼演示如何向?yàn)g覽器發(fā)送自定義標(biāo)頭:
<?php header('X-Custom-Header: Custom Value'); ?>Hello, World!通過上述代碼,我們向?yàn)g覽器發(fā)送了一個(gè)自定義標(biāo)頭 X-Custom-Header,值為 Custom Value。 除了發(fā)送 HTTP 標(biāo)頭,header 函數(shù)還有一個(gè)重要的用途,就是重定向頁面。當(dāng)用戶訪問某個(gè)網(wǎng)址時(shí),我們希望能夠自動將他們重定向到另一個(gè)頁面,這時(shí)就可以使用 header 函數(shù)。下面這個(gè)示例代碼演示了如何使用 header 函數(shù)來實(shí)現(xiàn)重定向:
<?php header('Location: http://www.example.com/'); ?>Redirecting...通過上述代碼,我們向?yàn)g覽器發(fā)送一個(gè)重定向的頭信息,將用戶重定向到了 http://www.example.com/ 網(wǎng)站。 總結(jié)來說,PHP 中 header 函數(shù)是非常有用的 HTTP 標(biāo)頭控制函數(shù),它可以用來發(fā)送信息、自定義標(biāo)頭、重定向等操作。我們可以根據(jù)不同情景的需要,靈活地使用 header 函數(shù)來控制 HTTP 標(biāo)頭,從而為瀏覽器提供不同的響應(yīng)信息。