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

PHP HTTP 函數完整指南

     編輯:PHP 入門

PHP HTTP 函數完整指南


簡介

HTTP 函數允許您在輸出內容發送給瀏覽器之前,操作 Web 伺服器發送的 HTTP 標頭資訊。常用於設定 Cookie、重導向、快取控制、內容類型等。所有函數內建於 PHP 核心,無需安裝。


核心函數

函數說明PHP 版本
header()發送原始 HTTP 標頭(如重導向、Content-Type、快取控制)3
headers_list()返回已發送或待發送的回應標頭列表5
headers_sent()檢查 HTTP 標頭是否已發送,並返回發送位置3
setcookie()發送 HTTP Cookie(自動 URL 編碼值)3
setrawcookie()發送 HTTP Cookie(不進行 URL 編碼)5

常見應用範例

1. 重導向

<?php
header('Location: https://example.com/new-page.php');
exit;
?>

2. 設定 JSON 回應

<?php
header('Content-Type: application/json; charset=utf-8');
echo json_encode(['status' => 'ok', 'data' => [1,2,3]]);
?>

3. 禁止快取

<?php
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
?>

4. 設定 Cookie

<?php
// 過期時間 1 小時,僅 HTTPS、HttpOnly、SameSite=Lax
setcookie('user_id', '12345', [
    'expires' => time() + 3600,
    'path' => '/',
    'domain' => '',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax'
]);
?>

5. 檢查標頭是否已送出

<?php
if (!headers_sent($file, $line)) {
    header('X-Custom: value');
} else {
    error_log("Headers already sent in $file on line $line");
}
?>

注意事項

  • header() 必須在任何實際輸出(HTML、空白、echo、print)之前呼叫,否則會觸發「Headers already sent」警告。
  • 使用 headers_list() 除錯時可查看即將發送的標頭。
  • Cookie 設定建議啟用 httponly 與 secure 提升安全性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved