<HTML> <HEAD> <TITLE> Listing </TITLE> <!-- Titre de la fenêtre --> </HEAD>
<BODY BGCOLOR="#FFFFFF">
<? $dir="./ftp";// Répertoire dont le contenu sera listé $dossier=opendir($dir);// Ouverture du répertoire
echo "<U><B>Contenu du répertoire : ".$dir."</B></U><BR><BR>"; echo "<TABLE border=0>\n";// Création d'un tableau pour améliorer la lisibilité echo "<TR><TD ALIGN=CENTER>Type</TD><TD>Noms</TD><TD>Taille</TD><TD ALIGN=CENTER>Date</TD></TR>";//création des titres de colonnes
while($fichier=readdir($dossier))//parcours du répertoire { $type = is_dir("$dir/$fichier" );//est-ce un fichier ou un répertoire ? $taille = filesize("$dir/$fichier" );// Récupération de la taille du fichier (ou du répertoire) $date = filemtime("$dir/$fichier" );// Récupération de date de dernière modification du fichier (ou du répertoire) $aff_date = date("d/m/Y", $date);// Mise en forme de la date : 01/01/2001
if ($type) { $type_res = "D"; } else
{ $type_res = "F"; }
// On peut utiliser cette façon aussi pour tester s'il s'agit d'un fichier ou d'un répertoire // Tout est fait en une seule ligne ! // is_dir("$dir/$fichier" ) ? $type_res = "D" : $type_res = "F";
// Contrôle de la taille du fichier afin d'afficher les valeurs correspondantes // 1 mo et non pas 1048576 octets par exemple... C'est plus lisible ! if ($taille >= 1048576) // Si la taille est supérieur à cette valeur { $taille_res = round($taille / 1048576);// On converti en Mo $unite = Mo;// Et on place cette variable à Mo : pour l'affichage du résultat } elseif ($taille >= 1024)// Sinon, si la taille est inférieur à 1 Mo et supérieure à 1 ko { $taille_res = round($taille / 1024);// On converti en ko
$unite = ko;// Et on place cette variable à ko : pour l'affichage du résultat } else
{ $taille_res = $taille;// et sinon (inférieur à 1 ko), on laisse la taille telle quelle... $unite = octets;// Et on place cette variable à octets : pour l'affichage du résultat }
if ($fichier != "." && $fichier != ".." )//pour éviter l'affichage des . et .. dans le résultat du listing
// Affichage du résultat echo "<TR><TD ALIGN=CENTER>$type_res</TD><TD><a href='$dir/$fichier'>$fichier</a></TD><TD>".$taille_res." ".$unite."</TD><TD>".$aff_date."</TD></TR>"; }
echo "</TABLE>\n";// Fermeture du tableau closedir($dossier);// Fermeture du dossier ?> </BODY
<!-- Dans cette version, la taille des fichiers est arrondi à la valeur supérieure... Car avec le php3, la fonction round n'accepte pas l'option de paramétrage des décimales... -->
</HTML>
|