2013-02-26 77 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