0

我编写了一个 php 脚本来帮助限制下载文件的速度和连接。我用过这样fopen()fseek()东西:

$f = fopen($file, 'rb');
if($f){
    fseek($f,$start);//$start extracted from $_SERVER['HTTP_RANGE']
    while(!feof($f)){
        echo fread($f,$speed);//$speed is bytes per second
        flush();
        ob_flush();
        sleep(1);
    }
    fclose($f);
}

下载过程可能需要几个小时才能完成,整个文件是否在内存中直到下载结束?以及如何优化它?

4

1 回答 1

6

不,fread使用内部缓冲区来流式传输数据(默认为 8KB),因此文件中只有很小的一部分实际驻留在内存中。

于 2012-05-30T15:05:02.080 回答