Output Buffering เป็นวิธีที่บอกให้เอ็นจิน PHP เก็บข้อมูลเอาต์พุตก่อนที่จะส่งไปยังเบราว์เซอร์ ดังที่เราทราบดีว่า PHP ส่งข้อมูลเอาต์พุตไปยังเบราว์เซอร์เป็นชิ้นๆ แต่ถ้าเราใช้กลไกบัฟเฟอร์เอาต์พุต ข้อมูลเอาต์พุตจะถูกเก็บไว้ในตัวแปรและส่งไปยังเบราว์เซอร์เป็นชิ้นเดียวที่ส่วนท้ายของสคริปต์
ตัวอย่าง
มาสาธิตกันด้วยตัวอย่างง่ายๆ
<?php ob_start(); echo "Hello"; $ob1 = ob_get_contents(); echo "Tutorials Point"; $ob2 = ob_get_contents(); ob_end_clean(); var_dump($ob1, $ob2); ?>
ผลลัพธ์
string(5) "Hello" string(20) "HelloTutorials Point"
คำอธิบาย
ในตัวอย่างข้างต้น ob_get_contents() จะดึงข้อมูลทั้งหมดที่รวบรวมไว้ตั้งแต่เราเรียก ob_start นั่นคือทุกอย่างในบัฟเฟอร์ หลังจากนั้นส่งข้อมูลออกพร้อมกัน
ข้อดีของการบัฟเฟอร์เอาต์พุต
- การเปิดบัฟเฟอร์เอาต์พุตเพียงอย่างเดียวจะลดระยะเวลาที่ใช้ในการดาวน์โหลดและแสดงผล HTML ของเราในเบราว์เซอร์ ดังนั้นจึงลดเวลาดำเนินการของสคริปต์ PHP
- หากคุณเคยพบข้อความเช่น "คำเตือน:ไม่สามารถแก้ไขข้อมูลส่วนหัว - ส่วนหัวที่ส่งโดย (เอาต์พุต)" แล้วขณะตั้งค่าคุกกี้ คุณสามารถแก้ไขได้โดยบัฟเฟอร์เอาต์พุต