使用 ob start 的典型用法和原因
當你在頁面上有重定向時,ob_start
特別方便。例如,以下程式碼將不起作用:
Hello!
<?php
header("Location: somepage.php");
?>
將給出的錯誤類似於:headers already sent by <xxx> on line <xxx>
。
為了解決這個問題,你可以在頁面的開頭寫這樣的東西:
<?php
ob_start();
?>
在頁面的末尾有類似的內容:
<?php
ob_end_flush();
?>
這會將所有生成的內容儲存到輸出緩衝區中,並一次顯示。因此,如果你的頁面上有任何重定向呼叫,那麼這些呼叫將在傳送任何資料之前觸發,從而消除發生 headers already sent
錯誤的可能性。