Dostosuj poniższy skrypt do własnych potrzeb
<?php
$speed = 100;
$bufsize = 2048;
$packet = 1;
$bandwidth = 0;
$file = "/home/file.tgz";
$lock = '/tmp/'.$_SERVER['REMOTE_ADDR'].'_'.md5($file).'.lock';
{
echo "Concurrent downloading is disallowed"; }
$fp = fopen($file, 'rb');
{
if ($size < $bufsize)
{
$bandwidth += $size;
}
else
{
$bandwidth += $bufsize;
}
$size -= $bufsize;
if ($speed > 0 && ($bandwidth > $speed * $packet * 1024))
{
$packet++;
}
}
?>
Aby sprawdzić ile plików jest pobieranych w danej chwili wystarczy:
<?php
?>
Wypadałoby też zabezpieczyć się przed martwymi kluczami wskazywanymi przez zmienną $lock sprawdzając czas ostatniego dostępu.