Soyez le premier à donner votre avis sur cette source.
Vue 5 520 fois - Téléchargée 397 fois
<?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 ?>
30 août 2006 à 21:45
30 août 2006 à 21:34
quand je clique sur un dossier ben y s'ouvre pas ...
au niveau des fichiers c'est nickel mais impossible d'ouvrir un autre dossier ...
Ah j'ai trouvé d'où ça vient, la variable $php_self est vide ... enfin elle est utilisée 2 fois mais elle n'est pas remplie (et comme elle affichait un message d'erreur, je l'ai initialisée à vide ...
sinon j'ai repris ton code pour le rendre plus lisible, je l'ai commenté un peu plus (même s'il était déjà bien commenté) et j'ai ajouté une initialisation à vide de toutes les variables qui affichaient des messages d'erreur ...
regarde sur http://les4dudus.free.fr/ et prend le fichier intitulé "phpcs_source_13178_ ..>"
3 juin 2003 à 11:41
ça me fait plaisir de voir un si beau travail :) No mais franchement c'est pas mal !
bon courage ds la prog et surtout pour le brevet ... mais fais comme moi révise pas ça sert à rien !
@++
PoPo
http://popolinux.zapto.org
23 avril 2003 à 15:54
23 avril 2003 à 02:43
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.