首頁  >  文章  >  後端開發  >  php輸出緩衝控制

php輸出緩衝控制

伊谢尔伦
伊谢尔伦原創
2016-11-22 09:51:271058瀏覽

簡介

當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_g​​et_contents — 傳回輸出緩衝區的內容

ob_g​​et_flush — 刷出(送出)緩衝區內容,以字串形式傳回內容,並關閉輸出緩衝區。

ob_g​​et_length — 傳回輸出緩衝區內容的長度

ob_g​​et_level — 回傳輸出緩衝區內容的巢級

ob_g​​et_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  限制設定值— 重寫

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn