php怎麼關閉緩衝區
php關閉緩衝區的方法:1、開啟PHP安裝目錄,找到並開啟設定檔「php.ini」;2、在設定檔中,找到「output_buffering」項,將該項的值設定為“Off”即可。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
PHP 緩衝區( buffer)
腳本輸出資訊先放入buffer,只有當buffer滿了或腳本運行完畢,資料才會往下一階段轉移。在設定檔php.ini可以找到output_buffering
設定項,我的預設設定(Windows/XAMPP v3.2.2)是4096
若設定成On,緩衝區可用且無大小限制;
若設定為Off,緩衝區不可用;
若設定為整數,緩衝區可用且設定大小,單位位元組
需要注意的是,ini_set無法設定buffer大小,在初始化腳本執行環境時,已經做好了buffer的定義;cli模式下總是預設output_buffering為Off 。
那麼問題來了,緩衝區關閉和開啟有什麼區別?緩衝區初始設定的大小有什麼作用? cli模式預設關閉若業務需要能開啟嗎?快取區存在有什麼好處?
1. 緩衝區關閉與開啟有何不同?
透過程式碼檢定
output_buffering配置為4096時,執行程式碼
輸出結果:等待3秒鐘後,同時輸出了start和end
Output_buffering配置為Off時,執行相同程式碼
輸出結果:先輸出了start,等待3秒鐘後,輸出了end
#單一看結果一模一樣啊~但是觀察其運行過程發現了很驚訝的不同點。若緩衝關閉,先輸出“start”,等待3秒後再輸出“end”。而緩衝開啟,會等待腳本執行完成,一併輸出結果
這個例子中,flush用來刷新apache的緩衝區,類似讓PHP buffer與瀏覽器建立直接聯繫,好讓我們的注意力能夠專注PHP buffer本身。
透過一個形象的例子比喻,PHP的緩衝區像一個大房子,每次echo等輸出函數執行時,將資料丟到這個大房子裡,直到腳本執行完成或執行ob_flush函數,將資料從大房子中釋放,丟給了WebServer緩衝區。關閉了PHP緩衝區後,echo函數執行,沒有大房子可以放怎麼辦呢,就只好直接交給WebServer緩衝區了。
透過例子和程式碼執行結果,我們能夠明白,所謂PHP buffer,是PHP本身開啟的資料儲存中樞站,一系列的ob函數都是為此操作。 (舉幾個例子函數)
ob_clean(); //刪除內部緩衝區的內容,且未關閉緩衝區(不輸出)。
ob_end_clean(); //刪除內部緩衝區的內容,並關閉緩衝區(不輸出)。
ob_get_contents(); //傳回緩衝區的內容,不輸出
ob_get_length(); //傳回內部緩衝區的長度,若緩衝區未啟動,則此函數回傳FALSE 。
2. 緩衝區初始設定的大小有何作用?
將output_buffering從4096改為5,方便執行測試
#執行程式碼
3. cli模式預設關閉若業務需要能開啟嗎?
這個問題可以做個補充,非cli模式下,如果php.ini設定緩衝區關閉,但是業務需要用到buffer,咋整呢,難不成還要去改配置。當然不會那麼難搞了,這時候又一個ob函數來了,ob_start(); //開啟一個輸出緩衝區,所有的輸出資訊不再直接傳送到瀏覽器,而是儲存在輸出緩衝區裡面。 知道了PHP buffer類似資料暫存區的概念,回過頭再來看看TP5源碼。先來看看ob_get_level和ob_get_clean函數解釋
ob_get_level() :傳回輸出緩衝機制的巢狀層級。
ob_get_clean():###得到目前緩衝區的內容並刪除目前輸出緩衝區。
從程式碼中也能得知一二,若level取得大於0,取得緩衝區的內容並刪除緩衝區,再透過ob_start開啟一個新的,這也很符合註解裡說明的「重新申請」。 這裡解釋下所謂的嵌套,至於level的值啥時候會為0,並且非0的話是什麼呢,請將php.ini output_buffering關閉,輸出看看結果。另外多次ob_start,多次ob_get_level,來試試比較輸出結果吧。 先來看看兩個模型4. 快取區存在有何好處?
PHP輸出資料傳送到WebServer,若echo執行一次發送一次,這加大了資源消耗,不如儲存在記憶體中,統一傳送更有效率。 Web請求包含HTTP頭部,頭部在設定之前不能有任何的輸出。 PHP緩衝區替我們做好了這步驟工作,在頭部發送前輸出各種數據,緩衝區會先將頭部資訊傳送到WebSever,再統一發送數據封包。 推薦學習:《PHP影片教學》
以上是php怎麼關閉緩衝區的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
