Taille récursive d'un dossier FTP

  Information

Calcule la taille des fichiers contenus dans un dossier (et ses sous-dossier).

Attention : La taille retournée ne prend pas en compte la taille physique des dossiers mais seulement celle de leur contenu.

Auteur : Cedric Fronteau
A savoir

each() est utilisé dans ce code source. Cette fonction est OBSOLÈTE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillée.
  code source classé dans  FTP

 
 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    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
 44    
 45    
 46    
 47    
 48    
 49    
 50    
                               
<?php
/*---------------------------------------------------------------*/
/*
    Titre : Taille récursive d'un dossier FTP                                                                             
                                                                                                                          
    URL   : https://phpsources.net/code_s.php?id=842
    Date édition     : 14 Fév 2019                                                                                        
*/
/*---------------------------------------------------------------*/

 function ftp_dirsize($host $user $passwd $dir $port=21){
 if (func_num_args() == 6
  { 
  $stream func_get_args(5); 
  } 
  else 
  { 
  $stream ftp_connect($host$port); 
  if (!ftp_login($stream$user$passwd)) 
  return FALSE
  if (!preg_match("/^\//"$dir)) 
  $dir "/$dir"
  if (!ftp_chdir($stream$dir)) 
  return FALSE
  $size=0
  } 
  
  $list ftp_nlist($stream'.'); 
  if (!is_array($list)) 
  return 0
  $pwd ftp_pwd($stream); 
  while(list($k$v) = each($list)) 
  { 
  if (@ftp_chdir($stream"$pwd/$v")) 
  $size += ftp_dirsize($host$user$passwd$dir$port$stream);
  else 
  { 
  $s ftp_size($stream"$pwd/$v"); 
  if ($s === FALSE
  return FALSE
  else 
  $size += $s
  } 
  } 
  return $size
}

?>

          Fonctions du code - Doc officielle PHP

   php.net   Description Versions PHP OUTIL
   each Retourne chaque paire clé/valeur d'un tableau - (PHP 4, PHP 5)   !  OBSOLÈTE(PHP 4, PHP 5, PHP 7)
   ftp_chdir Modifie le dossier FTP courant PHP 4, PHP 5, PHP 7, PHP 8
   ftp_connect Ouvre une connexion FTP PHP 4, PHP 5, PHP 7, PHP 8
   ftp_dirsize - PHP 5, PHP 7, PHP 8
   ftp_login Identification sur un serveur FTP PHP 4, PHP 5, PHP 7, PHP 8
   ftp_nlist Retourne la liste des fichiers d'un dossier PHP 4, PHP 5, PHP 7, PHP 8
   ftp_pwd Retourne le nom du dossier courant PHP 4, PHP 5, PHP 7, PHP 8
   ftp_size Retourne la taille d'un fichier PHP 4, PHP 5, PHP 7, PHP 8
   func_get_args Retourne les arguments d'une fonction sous la forme d'un tableau PHP 4, PHP 5, PHP 7, PHP 8
   func_num_args Retourne le nombre d'arguments passés à la fonction PHP 4, PHP 5, PHP 7, PHP 8
   is_array Détermine si une variable est un tableau PHP 4, PHP 5, PHP 7, PHP 8
   list Transforme une liste de variables en tableau PHP 4, PHP 5, PHP 7, PHP 8
   preg_match Expression rationnelle standard PHP 4, PHP 5, PHP 7, PHP 8
   return Retourne le controle du programme au module appelant. PHP 4, PHP 5, PHP 7, PHP 8

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

Présentation de PHP

PHP débutant et initié 50 Tutoriel

Présentation de MySQL