簡體   English   中英

PHP:如何通過curl發布3 GB的字符長字符串或在瀏覽器中輸出?

[英]PHP : how to post a 3 gigabyte chars long string by curl or output it in browser?

我正在做一個在線數據庫轉儲工具。

但是,當我輸出數據時,PHP將等待直到可以計算出需要轉儲的長度,這可能會使用戶對API是否有效感到困惑。

如何分塊發送響應?

我嘗試添加:

header('Transfer-Encoding:chunked');

但是Chrome瀏覽器無法使用它打開頁面。

我需要做什么?

謝謝!


答:發送前應該對數據進行編碼。

function chunk_encoding($chunk) {
    printf("%x\r\n%s\r\n", strlen($chunk), $chunk);
    flush();
    ob_flush();
}

用3GB數據充斥用戶不是明智的方法。 假設該用戶具有DSL連接(比如說6MBit),那么他必須等待大約69分鍾,直到所有數據都可以使用(例如,復制),這令人恐懼。 另外,不允許他關閉加載該數據的選項卡,否則數據將丟失。 最后,如果任何瀏覽器被迫顯示如此多的數據,它將成長為消耗內存的怪物。

更好的解決方案是在服務器上生成文件,並讓用戶通過顯示鏈接來下載該文件。 這樣,用戶可以在后台下載文件(可以使用任何下載管理器),並且可以在本地檢索數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM