Salut tt le monde !
Vous aussi vous en avez marre de la liste Apache des dossier et fichier ?
Et bien voila la meme chose, mais avec qq petite amelioration
(Dossier avant les fichiers,
Navigation dans la meme et unique page,
interface en FR,
et nom de fichier plus longs.)
de plus grâce a cette source vous pourez facillement personnaliser cette interface a votre gout,
Oufff, enfin la v2 qui est un copi conforme du script d'apache :
Source / Exemple :
<?php
//Crée par OverDarck (DarckOver@Yahoo.fr) le 08/03/2003
function getmicrotime() {//pour le calcul du tps d'execution de la page
// Cette fonction récuperre l'heure en microsecondes
list($usec, $sec) = explode(" ", microtime());
return ($usec + $sec);
}
function SConv($oct){//convertion des tailes de fichiers
if ($oct < 1024){
$tmp = number_format($oct);
}elseif ($oct > 1024 && $oct < bcpow(1024,2)){
$tmp = number_format($oct / 1024)."k";
}elseif ($oct > bcpow(1024,2) && $oct < bcpow(1024,3)){
$tmp = number_format($oct / bcpow(1024,2))."M";
}elseif ($oct > bcpow(1024,3) && $oct < bcpow(1024,4)){
$tmp = number_format($oct / bcpow(1024,3))."G";
}elseif ($oct > bcpow(1024,4) && $oct < bcpow(1024,5)){
$tmp = number_format($oct / bcpow(1024,4))."T";
}
return $tmp;
}
function GetImg($filesrc){//renvoi un icone selon l'extension du fichier (22 extension reconues)
$ext=pathinfo($filesrc);
$ext=$ext["extension"];
if ($ext=="exe"){
$tmp = "/icons/binary.gif"; //fichier "binaires"
}elseif ($ext=="zip"){
$tmp = "/icons/compressed.gif"; //fichier "compressés"
}elseif ($ext=="htm"|$ext=="html"|$ext=="txt"|$ext=="css"|$ext=="rtf"|$ext=="xml"){
$tmp = "/icons/text.gif"; //fichier "texte"
}elseif ($ext=="mp3"|$ext=="wav"|$ext=="mid"|$ext=="rm"){
$tmp = "/icons/sound2.gif"; //fichier "son"
}elseif ($ext=="avi"|$ext=="mpg"|$ext=="mpeg"|$ext=="mov"){
$tmp = "/icons/movie.gif"; //fichier "vidéo"
}elseif ($ext=="gif"|$ext=="jpg"|$ext=="jpeg"|$ext=="bmp"|$ext=="png"){
$tmp = "/icons/image2.gif"; //fichier "image"
}elseif ($ext=="pdf"){
$tmp = "/icons/layout.gif"; //fichier pdf
}else{
$tmp = "/icons/unknown.gif"; //fichier inconu
}
return $tmp;
}
$starttime = getmicrotime();//temp de départ (pour calcul du tps d'execution)
if($rep==""){$rep=".";};// au cas ou on vien d'ouvrir la page pour explorer le répertoire courant
if(substr($rep,strlen($rep)-1,1)!="/"){$rep=$rep."/";};//rajoute le / a la fin
$rep=str_replace("\\","/", $rep);//remplace les eventuels \ en /
$rep=str_replace("//","/", $rep);//dédouble les eventuels // (sa donne /)
if ($dir = @opendir($rep)) {
while($file = readdir($dir)) {//liste des fichier et dossier
if($file!="." && $file!=".."){//pour eviter d'avoir les "." et ".."
if(strlen($file)>30){
$FileN=substr($file, 0, 30)."..></a> ";//coupe les noms de fichiers a 30 char si ils sont plus longs que 30
}else{
$FileN=str_pad($file."</A> ", 38," ");//rempli d'espaces ceux qui sont trop courts
}
$loc=$rep.$file;//chemin complet
$FDT=str_pad(str_pad(date("j",filemtime($loc)),2,"0", STR_PAD_LEFT).date("-M-y h:m",filemtime($loc)),20);//date et heure des fichiers
$FS=str_pad(SConv(filesize($loc)), 4, " ", STR_PAD_LEFT);//taille du fichier (d'une largeure de 4 char)
if(is_dir($loc)){//si dossier ou si fichier
$d=$d+1;//compte du nombre de dossiers
$buf=$buf."<IMG SRC=\"/icons/folder.gif\" ALT=\"[DOSSIER]\"> <A HREF=\"".$PHP_SELF."?rep=".$loc."\">".$FileN.$FDT." -\n";
}else{
$f=$f+1;//compte du nombre de fichiers
$img=GetImg($loc);
$buff=$buff."<IMG SRC=\"".$img."\" ALT=\"[FICHIER]\"> <A HREF=\"".$loc."\">".$FileN.$FDT.$FS."\n";//on met en buff pour les afficher plus tard, comme sa on a tout les dossiers avant
}
}
}
closedir($dir);
}else{$buf=("<br>L'adresse spécifiée n'est pas valide");};
//on affiche le tout
print("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<HTML>\n <HEAD>\n <TITLE>WebExplorer : ".$rep."</TITLE>\n </HEAD>\n<BODY>\n<H1>Index of ".$rep." <FONT SIZE=1>(".str_pad($d,1,"0")." dossiers et ".str_pad($f,1,"0")." fichiers)</FONT></H1>\n<PRE><IMG SRC=\"/icons/blank.gif\"> Name Last modified Size\n<HR>\n");//en tête de la page
if($rep!="/" && $rep!="" && $rep!="./"){//sa c'est pour le "Répertoire parent
$Parent=str_replace("\\","/",dirname($rep));
print("<IMG SRC=\"/icons/folder.gif\" ALT=\"[DOSSIER]\"> <A HREF=\"".$PHP_SELF."?rep=".$Parent."\">Répertoire parent<a> ".str_pad(str_pad(date("j",filemtime($loc)),2,"0", STR_PAD_LEFT).date("-M-y h:m",filemtime(dirname($rep))),20)." -\n");
}
print($buf);//les dossiers
print($buff);//les fichiers
$exectime = round((getmicrotime() - $starttime) * 100) / 100;//calcul de la difference tps de départ et tps actuel pour obtenir le tps d'execution de la page
print("</PRE><HR>\n<FONT SIZE=1><A HREF=\"mailto:DarckOver@yahoo.fr\">Ecrire au WebMaster</A>, cette liste à été générée par WebExplorer (Crée en PHP par OverDarck le 08/03/2003) en ".$exectime." secondes. (<A HREF=\"we_src.php\" TARGET=\"_NEW\">Source</A>)</FONT>\n</BODY>\n</HTML>");//pied de page
?>
Conclusion :
Pour les faignants, j'ai mis un zip...
de plus que j'ai fait une page qui permet d'afficher la sources de cette page pour vos visiteurs...
Aucun bugs connus, bientot j'integrerai un system de tri par nom, type et taille...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.