首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 取得已發送 HTTP Header 列表:headers_list() 函數用法與應用場景

     編輯:PHP 相關知識

前言

headers_list() 返回當前腳本已發送或準備發送的 HTTP Header 陣列,適用於除錯、測試、確認快取控制、CORS 等標頭是否正確設定。

基本用法

<?php
// 設定一些測試 Header
header("Expires: Sat, 12 Dec 1989 05:30:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("X-Custom-Header: TestValue");

echo "已發送 Header 列表:\n";
$headers = headers_list();
foreach ($headers as $h) {
    echo "  $h\n";
}

/*
輸出範例:
已發送 Header 列表:
  Expires: Sat, 12 Dec 1989 05:30:00 GMT
  Cache-Control: no-cache, must-revalidate
  X-Custom-Header: TestValue
  Content-Type: text/html; charset=UTF-8
*/
?>

關鍵特性

  • 無參數:直接呼叫即可。
  • 返回陣列:數字索引,每個元素為完整 Header 字串(含冒號)。
  • 包含隱性 Header:如 Content-Type、Date、Server 等 Web Server 自動添加的標頭。
  • 不受 headers_sent() 影響:即使 Header 已發送給瀏覽器,仍可取得列表。

實務應用場景

  • 單元測試驗證:斷言特定 Header 是否存在於列表中。
  • 中介軟體除錯:在框架中間件鏈結尾印出所有 Header 檢查順序與覆蓋情況。
  • CORS 除錯:確認 Access-Control-Allow-* 標頭正確設定。
  • 安全審計:檢查是否洩露 X-Powered-By、Server 等資訊。

相關函數比較

總結

headers_list() 是除錯 HTTP 回應標頭的利器,配合測試框架可自動化驗證 Header 正確性。希望本文對您的 PHP 程式設計有所幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數用途
headers_list()取得所有已設定/發送的 Header 陣列
headers_sent()檢查 Header 是否已發送(回傳 bool),可選輸出檔案/行號
header()設定單一 Header
header_remove()移除已設定的 Header(PHP 5.3+)