Limite en PHP la vitesse de download

  Information

Vous avez de gros fichiers à télécharger et vous voulez contrôler la bande passante. Ce code devait vous aider.

Le principe est simple, on télécharge le nombre de Kb que l'on paramètre dans le code ( 50 par defaut) et on attend 1 seconde sleep(1) puis on reprend le téléchargement.

  code source classé dans  Applications

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
                               
/*---------------------------------------------------------------*/
/*
Titre : Limite en PHP la vitesse de download

URL : https://phpsources.net/code_s.php?id=377
Auteur : Matt
Date édition : 27 Avril 2008
Date mise a jour : 22 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
Date mise a jour : 21 Jan 2026

Rapport de la maj:
- fonctionnement du code vérifié en PHP 8
*/
/*---------------------------------------------------------------*/

$file = "somefile.zip"; // Nom du fichier
$speed = 50; // i.e. 50 kb/s temps de telechargement
if(file_exists($file) && is_file($file)) {
header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Content-Disposition: filename=$file" . "%20");
flush();
$fd = fopen($file, "r");
while(!feof($fd)) {
echo fread($fd, round($speed*1024)); // $speed kilobytes (Kb)
flush();
sleep(1);
}
fclose ($fd);
}
?>

      Fonctions du code - Doc officielle PHP

Détail    php.net  
Description
Versions PHP
   echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
   fclose
Ferme un fichier
PHP 4, 5, 7 et 8
   feof
Teste la fin du fichier
PHP 4, 5, 7 et 8
   filesize
Renvoie la taille d'un fichier
PHP 4, 5, 7 et 8
   file_exists
Vérifie si un fichier existe
PHP 4, 5, 7 et 8
   flush
Vide les tampons de sortie
PHP 4, 5, 7 et 8
   fopen
Ouverture d'un fichier ou d'une URL
PHP 4, 5, 7 et 8
   fread
Lecture du fichier en mode binaire
PHP 4, 5, 7 et 8
   header
Envoie un entête HTTP
PHP 4, 5, 7 et 8
   is_file
Indique si le fichier est un véritable fichier
PHP 4, 5, 7 et 8
   round
Arrondi un nombre à virgule flottante
PHP 4, 5, 7 et 8
   sleep
Stoppe l'exécution durant quelques secondes
PHP 4, 5, 7 et 8

   Dites merci aux auteurs pour leurs travail, ça ne coûte rien et ça fait toujours plaisir wink

 Autres snippets qui pourraient vous intéressez

Limiter la vitesse de download d'un fichier zip

Compatibilité : PHP 5, PHP 7, PHP 8

Ce snippet limite la vitesse de téléchargement d'un fichier zip. Il est applicable directement dans un script.

Limite la vitesse de téléchargement d'1 fichier

Compatibilité : PHP 5, PHP 7, PHP 8

Cette fonction vous permettra de limiter volontairement la vitesse de téléchargement d'un ficher stocké sur un serveur local.

Coupe divise une chaine selon une limite

Compatibilité : PHP 5, PHP 7, PHP 8

Besoin de découper une chaine et ne garder que la séquence qui m'intéressait. Coupe divise une chaine en PHP selon une séquence.

* Requêtes exécutées avec Recherche Contextuelle
avatar

Matt

  27 Avril 2008

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

    22 Aout 2019
    fonctionnement du code vérifié

    21 Jan 2026
    fonctionnement du code vérifié en PHP 8

9 993 Vues
Compatibilité du code
PHP 5, 7 et 8+