Procurando na net sobre como controlar a banda em downloads usando PHP, achei este código interessante (e simples!):<?
$filedownload = "files/abc.exe";
Traduzindo do original: basicamente nos sabemos quantos bytes precisamos enviar por segundo, então calculamos o tempo em microsegundos (milisegundos) e fazemos a iteração deduzir o tempo restante de um segundo aguardando com um comando usleep. Se existir demora de mais de 1 segundo não será colocado delay.
$time = 10000;
$obytes = 150*1024; //150k download speed restriction
$fd = fopen ($filedownload, "rb");
while (!feof ($fd)) {
list($usec, $sec) = explode(" ", microtime());
$time_start = $usec + $sec;
$bytes = ceil($obytes/100);
echo fread($fd, $bytes);
flush();
if($time < 10000) usleep(10000-$time);
$i++;
list($usec, $sec) = explode(" ", microtime());
$time_end = $usec + $sec;
$time =ceil(($time_end - $time_start)*1000000)+10;
}
fclose ($fd);
?>
Fonte
Marcadores: controle de banda, download, php, programação
Assinar:
Postar comentários (Atom)
0 comentários:
Postar um comentário