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 に答える