在PHP 中, headers_list()函數是一個非常有用的工具,用於查看當前腳本中已經設置的所有HTTP 頭信息。它返回一個數組,包含了所有HTTP 頭的名稱和對應的值。這對於調試HTTP 頭的設置,尤其是在發送前檢查某些頭是否正確設置時,顯得尤為重要。
headers_list()函數不接受任何參數。當你調用它時,它會返回一個包含所有已發送HTTP 頭信息的數組。這裡有一個基本示例,演示如何使用headers_list()函數:
<?php
// 設置一些 HTTP 頭
header('Content-Type: application/json');
header('Cache-Control: no-cache');
// 獲取當前已設置的所有 HTTP 頭
$headers = headers_list();
// 输出所有頭信息
foreach ($headers as $header) {
echo $header . "<br>";
}
?>
在上面的示例中,我們首先使用header()函數設置了兩個HTTP 頭: Content-Type和Cache-Control 。然後,通過調用headers_list() ,我們獲取了當前所有設置的HTTP 頭,並逐一輸出。
當你運行上面的代碼時,輸出可能類似於:
Content-Type: application/json
Cache-Control: no-cache
頭信息發送順序: headers_list()返回的頭信息是按照發送的順序排列的。這意味著,如果你在腳本中先後設置了多個相同類型的頭, headers_list()會顯示出這些頭,並且順序是按照它們被設置的先後進行排列的。
必須在輸出前調用:請注意, headers_list()只能在沒有任何輸出之前調用。 PHP 會在輸出任何內容到瀏覽器之前發送HTTP 頭,因此,如果在調用headers_list()前已經有輸出(如echo或HTML 代碼),你將無法獲取到頭信息。
如果你需要設置自定義的HTTP 頭信息並查看它們,可以使用類似以下的代碼:
<?php
// 設置一個自定義的 HTTP 頭
header('X-Custom-Header: m66.net');
// 獲取當前的 HTTP 頭
$headers = headers_list();
// 输出所有頭信息
foreach ($headers as $header) {
echo $header . "<br>";
}
?>
在這個例子中,我們設置了一個名為X-Custom-Header的自定義頭,值為m66.net 。通過headers_list() ,我們可以查看它是否已被成功設置。
除了headers_list() ,PHP 還有其他一些相關的函數可以幫助你操作和管理HTTP 頭:
header() :用於發送一個原始的HTTP 頭到瀏覽器。
headers_sent() :檢查是否已經發送了HTTP 頭。
這些函數的結合使用可以幫助你靈活地控制HTTP 頭的行為,確保數據正確地傳輸給客戶端。