
文章插圖
大家好,小豆豆來為大家解答以上的問題 。output buffer,output buffering這個很多人還不知道,現在讓我們一起來看看吧!
1、在可以設置以下與輸出緩沖有關的:名稱 默認值 作用范圍 修正記錄 output_buffering "0" PHP_INI_PERDIRoutput_handler NULL PHP_INI_PERDIR 自 PHP 4.0.4 起可用 implicit_flush "0" PHP_INI_ALL 在 PHP <= 4.2.3 版本中是 PHP_INI_PERDIR 簡單解釋如下:output_buffering boolean/integer該選項設置為 On 時,將在所有的腳本中使用輸出控制 。
2、如果要限制輸出緩沖區的最大值,可將該選項設定為指定的最大字節數(例如 output_buffering=4096) 。
3、從PHP 4.3.5 版開始 , 該選項在 PHP-CLI 下總是為 Off 。
4、 output_handler string該選項可將腳本所有的輸出,重定向到一個函數 。
5、例如,將 output_handler 設置為 mb_output_handler() 時,字符的編碼將被修改為指定的編碼 。
6、設置的任何處理函數,將自動的處理輸出緩沖 。
7、 注意: 不能同時使用 mb_output_handler() 和 ob_iconv_handler(),也不能同時使用 ob_gzhandler() 和 t_compression 。
8、 注意: 只有內置函數可以使用此指令 。
9、對于用戶定義的函數,使用 ob_start() 。
10、 implicit_flush boolean默認為 FALSE 。
【output buffering output buffer】11、如將該選項改為 TRUE,PHP 將使輸出層,在每段信息塊輸出后,自動刷新 。
12、這等同于在每次使用 print()、echo() 等函數或每個 HTML 塊之后,調用 PHP 中的 flush() 函數 。
13、 不在web環境中使用 PHP 時 , 打開這個選項對程序執行的性能有嚴重的影響,通常只推薦在調試時使用 。
14、在 CLI SAPI 的執行模式下 , 該標記默認為 TRUE 。
15、 參見 ob_implicit_flush() 。
16、 設置了肯定會有用的 , 除非你修改的位置不是系統使用的那個,比如一般是C::,當然可以設置到其它地方 。
17、另外控制臺程序是不緩沖的 。
18、另外,你還可以在程序里面控制輸出緩沖,請參考手冊里面的“CXIV. Output Control 輸出控制函數”那一章,主要有如下函數:flush -- 刷新輸出緩沖ob_clean --Clean (erase) the output buffer ob_end_clean --Clean (erase) the output buffer and turn off output buffering ob_end_flush --Flush (send) the output buffer and turn off output buffering ob_flush --Flush (send) the output buffer ob_get_clean --Get current buffer contents and delete current output buffer ob_get_contents --Return the contents of the output buffer ob_get_flush --Flush the output buffer, return it as a string and turn off output buffering ob_get_length --Return the length of the output buffer ob_get_level --Return the nesting level of the output buffering mechanism ob_get_status --Get status of output buffers ob_gzhandler --ob_start callback function to gzip output buffer ob_implicit_flush --Turn implicit flush on/off ob_list_handlers --List all output handlers in use ob_start -- Turn on output bufferingoutput_add_rewrite_var --Add URL rewriter values output_reset_rewrite_vars --Reset URL rewriter values 例子程序:默認情況下,php buffer是開啟的 , 而且該buffer默認值是4096,即4kb 。
19、可以通過在配置文件中找到output_buffering配置.當echo,print等輸出用戶數據的時候,輸出數據都會寫入到php output_buffering中,直到output_buffering寫滿,會將這些數據通過tcp傳送給瀏覽器顯示 。
20、也可以通過ob_start()手動激活php output_buffering機制,使得即便輸出超過了4kb數據,也不真的把數據交給tcp傳給瀏覽器,因為ob_start()將php buffer空間設置到了足夠大 。
21、只有直到腳本結束,或者調用ob_end_flush函數,才會把數據發送給客戶端瀏覽器 。
本文到此分享完畢 , 希望對大家有所幫助 。
