Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP Output Buffering คืออะไร?


Output Buffering เป็นวิธีสั่งให้ PHP Engine เก็บข้อมูลเอาต์พุทไว้ก่อน ส่งไปให้เบราว์เซอร์ทีเดียวจบในท้ายสคริปต์ ปกติ PHP ส่งเอาต์พุทเป็นชิ้นๆ แต่ถ้าใช้ Output Buffering ข้อมูลจะถูกเก็บในตัวแปรและส่งครั้งเดียว

ตัวอย่าง

<?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() ถึงจุดที่เรียก หลังจากนั้นส่งข้อมูลเอาต์พุทครั้งเดียว

ข้อดีของ Output Buffering

  • เปิด Output Buffering ลดเวลาดาวน์โหลดและเรนเดอร์ HTML ในเบราว์เซอร์ ทำให้สคริปต์ PHP ทำงานเร็วขึ้น
  • แก้ปัญหา "Warning: Cannot modify header information - headers already sent" เมื่อตั้งคุกกี้หรือ redirect ได้