buffer 其實就是緩衝區,一個內存地址空間,主要用於存儲數據區域;
我們拿操作系統的buffer來舉一個例子:
當我們新建了一個文件,然後在文件中輸入一些數據,然後點擊保存的時候,我們看到的是這些數據全部保存到了
新建文件對應的磁盤中,但是這些數據不是直接就保存到磁盤中的,而是經過了buffer這個中間過程。
當我們點擊保存的時候,這些數據首先保存在了buffer中,當buffer被這些數據寫滿後,然後纔將buffer中的數據寫
到磁盤中;
php 的buffer與操作系統的buffer類似但是不完全一樣;
當我們執行php程序的時候,如果它有輸出數據,它並不是直接將數據通過tcp傳輸給客戶端瀏覽器並且顯示。同樣,
它也經歷了一個buffer。當我們執行echo語句或html代碼等等,它先是到緩衝區,當緩衝區被寫滿之後,腳本進程
就會將php的buffer中的數據通過tcp然後傳給客戶端瀏覽器,這時它就能把內容呈現出來;
輸出流程:內容 -> php buffer -> tcp -> 終端;
在php的配置文件,php.ini文件中,有一個屬性output_buffering就是用來開啓php buffer的。在不同的php版本中它的
默認值可能不同,在高版本的php中一般都是默認開啓的,即output_buffering = on;
我們只要開啓它就可以使用php的buffer。如果在這裏沒有開啓,我們也可以使用php程序來開啓它;