ฟังก์ชัน header() ของ PHP

การเขียนและการใช้งาน

ฟังก์ชัน header() ส่งหัวข้อมูล HTTP ต้นฉบับสู่ลูกค้า

ตระหนักถึงความสำคัญว่า ต้องเรียกฟังก์ชัน header() ก่อนที่จะมีการส่งออกข้อมูลใดๆ (ใน PHP 4 และสูงกว่านั้น คุณสามารถใช้ output buffering ที่แก้ปัญหานี้)

<html>
<?php
// ผลลัพธ์ผิดพลาด
// มีการปรากฏการณ์ของออกมาก่อนการเรียก header()
header('Location: http://www.example.com/');
?>

การใช้งาน

header(string,replace,http_response_code)
ตัวแปร รายละเอียด
string สำคัญ กำหนดรายงานหัวข้อมูลที่จะส่ง
replace

ตัวเลือก ชี้ว่าหัวข้อมูลนี้จะแทนที่หัวข้อมูลที่มีอยู่ก่อนหน้าหรือเพิ่มหัวข้อมูลเพิ่มเติม

เริ่มต้นค่าเป็น true (แทนที่) โดยความหมายที่ไม่เปลี่ยนแปลง (อนุญาตให้มีหัวข้อมูลหลายชนิด)。

http_response_code ใช้ได้เลือก (บังคับการเปลี่ยนค่าตอบสนอง HTTP ไปยังค่าที่กำหนด) (PHP 4 และสูงกว่านั้นสามารถใช้ได้)

คำแนะนำและหมายเหตุ

หมายเหตุ:จาก PHP 4.4 ขึ้นไป ฟังก์ชันนี้ป้องกันการส่งหัวข้อหลายหัวข้อในการส่งแค่แค่หนึ่งครั้ง ซึ่งเป็นมาตราการป้องกันการบุกรุกเฮดเดอร์

ตัวอย่าง

ตัวอย่าง 1

<?php
// วันที่ในอดีต
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");

?>
<html>
<body>
...
...

หมายเหตุ:ผู้ใช้อาจตั้งค่าตัวเลือกบางตัวเพื่อเปลี่ยนแปลงค่าการคั้นกรองของเบราเซอร์โดยค่าเริ่มต้น ด้วยการส่งหัวข้อดังกล่าว คุณสามารถปรับระบวนการเหล่านี้ได้

ตัวอย่าง 2

แนะนำผู้ใช้บันทึกไฟล์ PDF ที่สร้างขึ้น (หัวข้อ Content-Disposition ใช้เพื่อให้ความเห็นโดยเชื่อมโยงชื่อไฟล์แนะนำและบังคับการแสดงหน้าต่างการบันทึกของเบราเซอร์)

<?php
header("Content-type:application/pdf");
// ไฟล์จะถูกเรียกว่า downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// ต้นภาพ PDF อยู่ใน original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...

หมายเหตุ:มีบักสายบังคับการใช้ระบบของ Microsoft IE 5.5 ที่บังคับการหยุดเครื่องยนต์ดังกล่าว โดยการปรับระดับเป็น Service Pack 2 หรือสูงกว่า จะสามารถแก้ปัญหานี้ได้