什麼是緩衝區?
緩衝區的作用就是,把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取.
緩衝區最本質的作用就是,協調高速cpu和相對緩慢的io裝置(磁碟等)的運作.
在一般的php指令碼中,php標籤在外的任何html都會立即傳送到web瀏覽器,一旦執行了print語句,所有的列印內容也如此。利用輸出緩衝,html和列印的資料將會被放到緩衝(也就是記憶體)中,當指令碼執行結束後,緩衝將被傳送到web瀏覽器,或者需要的話可以清空,使用緩衝的乙個優點在於,無需擔心出現「http頭已經傳送」的錯誤。
要啟動緩衝,只需要在頁面開始時使用ob_start()函式,在指令碼結束時使用ob_end_flush()函式將累計下來的緩衝傳送到web瀏覽器或者使用ob_end_clean()函式刪除緩衝的資料而不進行傳輸。
<?php
ob_start(); //開啟輸出緩衝
?>
<?php
ob_end_flush();//完成輸出緩衝,將累積的緩衝傳送到web瀏覽器,並關閉緩衝,換句話說,所有的html都在此刻傳送。
?>
有些函式只能在沒有任何東西被傳送到瀏覽器之前呼叫,像header(),setcookie(),session_start()。如果在web瀏覽器已經收到了一些文字,html或者哪怕乙個空格之後再呼叫這些函式就會出現http頭已傳送的錯誤訊息。warning:cannot modify header information - header already sent by .......
PHP重新整理輸出緩衝
同 樣的道理,在php中,當執行echo,print的時候,輸出並沒有立即通過tcp傳給客戶端瀏覽器顯示,而是將資料寫入php buffer。php output buffering機制,意味在tcp buffer之前,建立了一新的佇列,資料必須經過該佇列。當乙個php buffer寫滿的時候,指令...
php輸出緩衝機制
php輸出快取模式 快取 指令碼輸出echo print r php buffer tcp buffer 瀏覽器 buffer 瀏覽器顯示 1 瀏覽器 buffer echo str repeat 200 hello sjolzy.cn 這裡是否是瀏覽器快取的影響還是輸出足夠大爆到最大快取了,還需要...
PHP中輸出緩衝
在php中,當執行echo,print的時候,輸出並沒有馬上通過tcp傳給client瀏覽器顯示,而是將資料寫入php buffer。php output buffering機制,意味在tcp buffer之前,建立了一新的佇列,資料必須經過該佇列。當乙個php buffer寫滿的時候,指令碼程序會...