Usiłowałem znaleźć odpowiedź na to pytanie zarówno na forum jak i w internecie, niestety nie znalazłem ani śladu informacji na ten temat.
Ograniczenie takie miałoby zostać narzucone przez php, a nie jakąś konfigurację serwera, albo przez program na nim zainstalowany.
Mój obecny pomysł to użycie funkcji, która po przesłaniu do bufora serwera pakietu czeka z wysłaniem kolejnego 1 sekundę (gdy $delay=1).
<?php function readfile_chunked ($filename,$delay,$kb_per_s) { $chunksize = $kb_per_s*(1024); // how many kbytes per chunk $buffer = ''; if ($handle === false) { return false; } } } //ini_set( 'implicit_flush','On' ); readfile_chunked($name,1,10); ?>
Takie rozwiązanie na pewno działa, bo testowałem - być może ktoś jednak ma uwagi co do wydajności takiego rozwiązania (czy obsługiwanie downloadu w ten sposób na stronie z dużą ilością odwiedzin nie wykończy serwera), a także ewentualnie wysłucham pomysłów i uwag.
Obecne rozwiązanie (chyba?) nie opóźnia wysyłki przy słabych łączach, gdy transfer i tak jest mniejszy niż ograniczenie.
Jeśli rozwiązanie jest ok, to mam nadzieję, że komuś kto kiedyś będzie go szukał też się przyda.