TOP 20 tableau

Invité
Invité n'ayant pas de compte PHPfrance

22 mai 2006, 15:22

Bonjour,

Je doit faire un script qui calcule la taille de chaque boite aux lettres domino des utilisateurs.

J'ai donc fait un script qui parcours le dossier ou elles sont stockées et qui affiche la taille ainsi que le nom, le nom se présente sous cette forme pnom, ou le p est la première lettre du prénom, et nom le nom :wink:

Le quotas des boites est limité a 100Mo, j'affiche les boites qui dépasse les 100 Mo en rouge, celle qui sont entre 90 et 100 en orange et entre 70 et 90 en orange clair.

Je souhaite réaliser un top 20 des utilisateurs en fonction de leurs tailles de BAL, le premier ayant la boite aux lettres la plus chargée.

Voici mon script de parcours :
function calc_size_Rdir_haut($dir_start){
    $files=glob("$dir_start\*");
    if ($files && $files ) foreach ($files as $file) {
        if (is_dir($file))
            calc_size_Rdir_haut($file);
        elseif(is_file($file)){
			$ext = substr($file, -4, 4);
			if ($ext=='.nsf'){
				$taille = round(filesize($file)/1000000,2);
				if ($taille>100) {
					$file = substr($file,40);
					echo "<font color='#FF0000' <strong>$file  -> $taille Mo</strong></font><br>";
				}
			}
		}
	}
}
Cette fonction affiche les BAL qui dépasse les 100Mo, j'en ai definie deux autres, avec la même forme qui affihce les tailles différentes.

Je me repete mais je souhiate afficher les 20 utilisateur qui consomment le plus d'espace avec leur boite aux lettres.

Merci

DarkSideOfTheMoon
Invité n'ayant pas de compte PHPfrance

22 mai 2006, 15:37

Essaye de mettres la taille de tes fichiers dans un tableau et ensuite de le trier avec sort() asort(), ensuite tu n'as qu'as afficher les 20 premiere entrées de ton tableau

Invité
Invité n'ayant pas de compte PHPfrance

22 mai 2006, 15:42

OK, merci mais comme tu dit cela n'affichera que les tailles des BAL.

Je souhaite également afficher les noms de chaques fichier, c'est à dire les noms des proprietaire de la boite mail.

Il faudrai que je puisse trier la taille de chaque fichiers et en même temps que je garde le nom du fichiers correspondant a sa taille.

ViPHP
ViPHP | 3607 Messages

22 mai 2006, 15:44

les tableaux sont "encapsulables"...
fait un tableau de ce style:
$tableau=array(
   "tailleBAL" => array("info1","info2",...),
   ....
)

Invité
Invité n'ayant pas de compte PHPfrance

22 mai 2006, 16:09

Yop,

J'ai crée mon tableau de cette manière
$tab[$file]=$taille;
$file est le nom du fichiers et $taille sa taille.

J'utilise la fonction asort pour trier lmes valeures par ordre decroissant. Ce tableau garde le lien entre valeures et index.

Je souhaite afficher les 20 premier, je pense faire un foreach mais je n'en sais pas plus la dessus.

Merci