2013-02-26 74 views
0

我的系統內存是128M,並將memory_limit設置爲128M,可以使用php fread下載超過150M大小的文件? 我試過了! 只能下載110M左右!關於php memory_limit

感謝所有,

$sent = 0; 
    $blocksize=(2 << 20); 

    $fp = fopen($download_path, "rb"); 
    while($sent < $size){ 
     echo fread($fp, $blocksize); 
     $sent += $blocksize; 
    } 
    exit(0); 

我用這樣的方式,所以我應該怎麼辦?

+0

取決於*如何下載這些文件。如果你將它們讀入記憶中,那麼是的,這是有限制的。如果您將它們正確地傳輸到磁盤,則沒有限制。 – deceze 2013-02-26 09:24:51

+0

fread讓你閱讀一個文件塊如果我記得很好,你的問題可能在其他地方。 – mpm 2013-02-26 09:24:57

回答

2

是的,如果你不嘗試將它們全部讀入內存。如果您的要求允許,您應該逐塊讀取文件並逐個處理這些塊。這通常是一個好主意,不管你在做什麼,也不管你有多少內存。

+0

那麼應該如何讀取塊中的文件並逐個處理這些塊呢?謝謝! – user1933513 2013-02-26 09:42:41

+0

閱讀文檔的時間。你正在使用哪本書? – 2013-02-26 09:47:51

+1

我沒有書,不太明白你的意思? – user1933513 2013-02-26 10:03:12