ฟังก์ชัน 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 หรือสูงกว่า จะสามารถแก้ปัญหานี้ได้