การใช้งาน ob_start ใน PHP

ฟังก์ชันนี้จะทำการเก็บค่า output ของตัวสคลิปไว้ใน buffer ถ้าหากมีการเีรียกใช้ฟังก์ชันนี้ script จะไม่มีการแสดง output ออกมา และถ้าเราต้องการนำเอา output ที่ถูกเก็บไว้ใน buffer ออกมาแสดง เราก็สามารถใช้ฟังก์ชัน ob_get_content โดยฟังก์ชันนี้จะให้ค่ากลับมาเป็น string ที่เก็บไว้ใน buffer หรือจะใช้ฟังก์ชัน ob_end_flush ก็จะเป็นการแสดงค่าที่เก็บไว้ใน buffer ออกมาทันที ซึ่งกรณีหลังนี้เป็นกรณีที่เราไม่ต้องการจะทำค่าที่เก็บไว้ไปทำอย่างอื่นต่อครับ โดยที่ฟังก์ชัน ob_start มีรูปแบบการใช้งานดังนี้ครับ

bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )

พูดไปพูดมาเดี๋ยวจะงง ดูตััวอย่างเลยดีกว่า ^^

<?php
function callback($buffer)
{
	return str_replace("apples", "oranges", $buffer);
}
ob_start("callback");
?>
<html>
	<body>
		<p>It's like comparing apples to oranges.</p>
	</body>
</html>
<?php
ob_end_flush();
?>

จากโค๊ดข้างบนเราก็จะได้เป็น

<html>
	<body>
		<p>It's like comparing oranges to oranges.</p>
	</body>
</html>

แหล่งข้อมูล: ob_start manual