2011-06-01 91 views
2

這真的很奇怪,我上週剛換了服務器,而且我有一個處理大量信息的大腳本(個人腳本)。如何在PHP中呈現頁面?

它做什麼它用foreach添加東西到數據庫中,然後回顯它的位置(例如:「ID#27已處理」)等等,直到完成。使用舊的服務器,我會看到這個「回聲」腳本逐個運行,但是使用我的新服務器,它會顯示帶有沙漏的空白頁面,直到加載/完成。

在服務器或PHP上有配置可以顯示頁面的構造嗎?

感謝

回答

4

如果您有權訪問php.ini,則可以設置output_buffering = Off以完全禁用此行爲。否則,按其他人的建議使用flush()

我相信output_buffering的默認設置是4096。如果新服務器設置得高得多,您也可以嘗試簡單地降低它,而不是關閉它以實現與舊服務器類似的行爲,而不會完全丟失緩衝區。

EDITAccording to PHP docs,阿帕奇mod_gzip可以做這防止flush()從工作它自己的輸出緩衝。

+0

但是,這可能會影響緩衝確實有用的許多頁面。 – Waldheinz 2011-06-01 12:57:18

+0

如果我的php.ini設置已經設置爲output_buffering = Off,是否正常,它仍然只響應頁面完全加載時的所有內容? – Joel 2011-06-01 17:23:32

+0

太好了,謝謝你的回答 – Joel 2011-06-01 20:10:12

2

調用flush後,每一個相關的輸出可能會有幫助。

0

我假設你使用flush()將輸出推送到客戶端。 有關在PHP頁面上刷新的注意事項,請參閱說明。例如:flush() may not be able to override the buffering scheme of your web server and it has no effect on any client-side buffering in the browser.

這可以立即解釋整個情況。 你能證實這些筆記不是原因嗎?