簡介
當PHP腳本有輸出時,輸出控制函數可以用這些來控制輸出。這在多種不同情況中非常有用,尤其是用來在腳本開始輸出 資料後,發送http頭資訊到瀏覽器。輸出控制函數不會影響 header() 或 setcookie()所傳送的檔案頭訊息,只影響像 echo這樣的函數和PHP程式碼區塊間的資料。
注意:
由於早先的版本的缺陷,當從PHP4.1.x(4.2.x,4.3.x)升級時,必須保證php.ini中的implicit_flush 是 OFF,否則任何用 ob_start()的輸出將在輸出中隱藏掉。
基本用法
<?php ob_start(); echo "Hello\n"; setcookie("cookiename", "cookiedata"); ob_end_flush(); ?>
在上面的例子中, echo函數的輸出將保存在輸出緩衝區中直到呼叫 ob_end_flush() 。同時,對 setcookie()的呼叫也成功儲存了一個cookie,而不會造成錯誤。 (正常情況下,在數據被發送到瀏覽器後,就不能再發送http頭信息了。)
輸出控制函數
flush — 刷新輸出緩衝
ob_clean — 清空(擦掉)輸出緩衝區
ob_end_clean — 清空(擦除)緩衝區內容並關閉緩衝
ob_flush — 沖刷出(發送)輸出緩衝區內容並關閉緩衝
ob_flush — 衝刷出(發送)輸出緩衝區中的內容
ob_flush — 衝刷出(發送)輸出緩衝區中的內容
ob_flush —緩衝區的內容並刪除目前輸出緩。
ob_get_contents — 傳回輸出緩衝區的內容
ob_get_flush — 刷出(送出)緩衝區內容,以字串形式傳回內容,並關閉輸出緩衝區。
ob_get_length — 傳回輸出緩衝區內容的長度
ob_get_level — 回傳輸出緩衝區內容的巢級
ob_get_status — 得到所有輸出緩衝區的狀態來壓縮內容的回呼函數。
ob_implicit_flush — 開啟/關閉絕對刷送
ob_list_handlers — 列出所有使用中的輸出處理程序。
ob_start — 開啟輸出控制緩衝
output_add_rewrite_var — 新增URL重寫器的值(Add URL rewriter values)
output_reset_rewrite_vars values)
output_reset_rewrite_vars 限制設定值— 重寫