2012-04-19 71 views
0

是否可以讓print_r()生效。我的意思是當腳本執行時。我不想等待腳本的結尾顯示。希望我清楚。預先感謝您的回覆。乾杯。馬克PHP - 如何顯示print_r()live

+2

這就是默認情況下的情況,除非您或PHP或用戶代理選擇緩衝您的輸出。 – Jon 2012-04-19 12:01:47

+0

是的,只是不要用它打印太大的數組,它需要幾百萬條記錄。 – ewanm89 2012-04-19 12:02:58

+0

..或網絡服務器。 – 2012-04-19 12:03:03

回答

2

可能你是通過像Apache這樣的網絡服務器使用PHP。

Web服務器已實施緩存,他們傾向於將數據發送到較大的塊中。
瀏覽器也實現了緩存,它們只是不時地刷新數據,並在最後加載網站時結束。
最後PHP也有緩存內置的。

HTTP不是爲「活」顯示它更像是一個靜態頁面,這就是爲什麼人們發明了「AJAX」和Javascript來輪詢更改/直播活動的網頁是後發加載。

你可以做什麼:

  1. 爲了確保從PHP將數據發送到Web服務器,你可以使用命令flush()
    還有一個名爲​​你可能想看看一個PHP設置。
  2. 網絡服務器可能使用gzip/mod_gzip壓縮輸出。您需要禁用該行爲。
    也許這會做到這一點:@apache_setenv('no-gzip', 1);
  3. 添加一些更多的內容不僅僅是單純的文字,如果你把一個簡單的「表」,包括</table>它更可能將瀏覽器的加載過程中顯示它裏面的數據。
  4. 看在PHP INI此:
    output_buffering = Off
    zlib.output_compression = Off
    您可以在運行時做到這一點太(@ini_set('zlib.output_compression', 0);
  5. 如果他們收到了一定的字節某些瀏覽器將只顯示數據。
    如果我記得正確的256字節可能會有所幫助。
    str_repeat(" ", 256);(或其他任何東西)

我想補充的是,這些步驟可以幫助解決這個問題,但根據我的經驗,結果是不完美的。 每個新的瀏覽器和瀏覽器版本可能會有所不同。

+0

非常感謝John對此表示感謝 – Marc 2012-04-19 15:07:10