PHP 中的標題位置

Subodh Poudel 2023年1月30日 2021年7月8日
  1. PHP 中 Header() 函式及其語法介紹
  2. 在 PHP 中使用 header() 函式和 location: 標題字串
PHP 中的標題位置

本文將介紹 header() 函式的概念及其在 PHP 中的語法。它將涵蓋在 PHP 中編寫標題的規則。此方法也適用於 Content-TypeContent-Disposition 標頭。

我們還將在本文中介紹 location: 標頭字串。我們將解釋 PHP 中 location header 的用法和本質。本文將演示標頭位置如何傳送響應程式碼並將瀏覽器重定向到另一個頁面。

PHP 中 Header() 函式及其語法介紹

header() 函式是一個內建的 PHP 函式,它允許我們向客戶端傳送原始 HTTP 標頭。傳送的標頭採用原始形式。我們應該在傳送任何輸出之前呼叫 header() 函式。任何形式的輸出,如 HTML 標籤或 PHP 表單傳送的輸出,都應該在傳送標頭資訊之前被丟棄。因此我們可以在任何輸出之前控制伺服器傳送到瀏覽器的資訊。

header() 函式的語法是:header(string,replace,http_response_code);。該函式接受三個引數。第一個引數是標題字串。有兩種型別的標題字串。第一種型別是以 HTTP/開頭的字串。它指定要傳送到瀏覽器的 HTTP 程式碼。標題字串的第二種型別是 location: 標題,它將瀏覽器重定向到指定的位置。函式中的下一個引數是 replace,它表示一個布林值。它是一個可選引數,用於確定標頭是否應替換之前的相似標頭。第三個引數 http_response code 也是一個可選引數,用於強制 HTTP 響應程式碼為指定值。

例如,建立一個 header() 函式並將標題字串用作 Content-Type。將 Content-Type 的值寫為 application/pdf。再次建立另一個 header() 函式。這一次,將標題字串寫為 Content-Disposition。將字串的值指定為 attachment。不要忘記在它後面加一個分號。在分號後寫入另一個屬性 filename,並將檔名提供為 download.pdf

當我們執行以下指令碼時,會出現一個下載對話方塊。它要求你下載名為 download.pdfpdf 檔案。第一個標題表示檔案應該是 pdf 格式,第二個標題表示檔案的檔名並強制瀏覽器顯示對話方塊以儲存檔案。

示例程式碼:

#php 7.x
<?php
header('Content-Type: application/pdf'); 
header('Content-Disposition: attachment; filename="downloaded.pdf"');
?>

在 PHP 中使用 header() 函式和 location: 標題字串

我們可以將 header() 函式與 PHP 中的 location: 頭字串一起使用。標頭字串將網頁重定向到指定的位置。它通常用於網頁中,在提交輸入後將使用者重定向到特定頁面。例如,當使用者在登入時輸入正確的憑據時,我們可以使用標頭位置將它們重定向到主頁。我們可以在 header() 函式中指定布林值和響應程式碼。但是,這些引數是可選的。預設的布林值為 true,這意味著它將替換之前的類似標題。我們還可以提供響應程式碼作為第三個引數。預設響應程式碼是 302。例如,我們可以將一個陣列寫入一個檔案,並將當前頁面重定向到另一個顯示檔案已寫入訊息的頁面。我們可以使用 file_put_contents() 函式寫入檔案。

例如,在 $day 變數上建立一個陣列。將鍵建立為 weathertime,將相應的值建立為 Sunny1:30 pm。然後使用 file_input_contents() 並指定一個檔案 file.txt 作為第一個引數。使用 print_r() 函式作為第二個引數。提供變數 $day 和布林值 true 作為 print_r() 函式的引數。使用 if 條件評估整個表示式。在 if 塊內使用 header() 函式。在函式內將位置指定為 message.php。使用冒號 : 指定位置。請注意,location: 冒號之間不應有任何間隙。建立一個 PHP 檔案 message.php。在檔案中顯示一條訊息,說明檔案已被寫入。

在上面的例子中,陣列被寫入檔案 file.txtif 條件評估為真,header() 函式將位置重定向到 message.php。因此,顯示了輸出。我們還可以在位址列中看到更改後的 URL。如果在現有的標頭函式下面還有另一個標頭函式,則後一個標頭將替換前一個標頭。這是因為在 header() 函式中,replace 選項的預設值為 true。

程式碼示例:

#php 7.x
<?php
$day = array (
    'weather' => 'Sunny',
    'time' => '1:30 pm',
);
if(file_put_contents('file.txt', print_r($day, true))){
    header("location: message.php");
}
?>

輸出:

The file has been written.
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn