ปัญหาเกี่ยวกับส่วนหัว HTTP เมื่อใช้งาน include ใน PHP
ปัญหากับส่วนหัว HTTP ก็สามารถ
เกิดขึ้นได้เมื่อ include ไฟล์ผ่าน
include มันจะปรากฏขึ้นในกรณีที่
หลังจากแท็กปิด ?>
มีช่องว่างหรือบรรทัดว่างเหลืออยู่
แบบนี้:
<?php
// some code
?>
ในกรณีนี้ เมื่อ include ไฟล์ของเรา เข้าไปในไฟล์อื่น บรรทัดว่างที่เหลืออยู่ จะทำงานเหมือนกับการแสดงผลออกทางหน้าจอ:
<?php
include 'file.php'; // ภายในมีการแสดงผลออกทางหน้าจอ
header('Content-Type: text/html');
?>
เพื่อแก้ไขปัญหา ควรลบแท็กปิด
?> ตัวสุดท้ายในไฟล์ PHP ทุกไฟล์
เทคนิคนี้ไม่ทำให้เกิดข้อผิดพลาด
ของ PHP และยังช่วยป้องกันเราไม่ให้เพิ่ม
บรรทัดว่างโดยไม่ได้ตั้งใจ มาลองแก้ไข
ไฟล์ของเรากัน:
<?php
// some code
แก้ไขข้อผิดพลาดที่เกิดขึ้นในโค้ดต่อไปนี้:
<?php
function func1() {
echo '1';
}
?>
<?php
function func2() {
echo '2';
}
?>
<?php
include 'file1.php';
include 'file2.php';
header('Content-Type: text/html');
?>
แก้ไขข้อผิดพลาดที่เกิดขึ้นในโค้ดต่อไปนี้:
<?php
function func1() {
echo '1';
}
?>
<?php
function func2() {
echo '2';
}
?>
<?php
include 'file.php';
header('Content-Type: text/html');
?>