有關php的ob_flush()與flush()使用方法

來源:互聯網
上載者:User
注意:ob_flush()和flush()這兩個函數一般要一起使用,順序是先ob_flush(),然後flush(),它們的作用是重新整理緩衝區。這裡具體的說下什麼時候要用到重新整理緩衝區和為什麼要重新整理緩衝區。

注意:ob_flush()和flush()這兩個函數一般要一起使用,順序是先ob_flush(),然後flush(),它們的作用是重新整理緩衝區。這裡具體的說下什麼時候要用到重新整理緩衝區和為什麼要重新整理緩衝區。

一、什麼時候要重新整理緩衝區當程式中用到file_get_contents()和file_put_contens()這兩個函數時,或程式中執行類似的“讀寫”功能或向瀏覽器執行輸出操作時,會用到ob_flush()和flush()來重新整理緩衝區。

二、為什麼要重新整理緩衝區用file_get_contents()和file_put_content()為例進行講解。

file_get_contents()和file_put_conents()這兩個函數分別執行讀取資料和寫入資料操作,資料是先被讀到記憶體中然後在寫入檔案中的,因為讀取的速度比寫入的速度要快,所以當你的資料被讀完的時候不代表資料也寫入完畢,這個時候多讀的內容就會被暫時放到緩衝區中(記憶體),在這裡需要強調一下,其實資料讀取和寫入是兩個非常快的動作哦。

還用一種解釋(當程式向瀏覽器執行輸出操作時),個別web伺服器程式,特別是Win32下的web伺服器程式,在發送結果到瀏覽器之前,仍然會緩衝指令碼的輸出,直到程式結束為止。如果你不想讓程式執行完畢才向瀏器輸出,那麼你也可以用到ob_flush()和flush()來重新整理緩衝。

其實,flush()還有一種用途,就是在沒結束程式之前就進行輸出,即一個迴圈還沒結束就可以把部分結果輸出到瀏覽器上,這個效果很類似 ajax的非同步傳輸效果。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.