begin process at 2012 05 27 20:56:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > WEB EPLORER V2, UNE INTERFACE DE NAVIGATION COMME CELLE D'APACHE (LISTING DOSSIER/FICHIER, ET NAVIGATION)

WEB EPLORER V2, UNE INTERFACE DE NAVIGATION COMME CELLE D'APACHE (LISTING DOSSIER/FICHIER, ET NAVIGATION)


 Information sur la source

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Débutant Date de création :08/03/2003 Date de mise à jour :15/03/2003 23:24:14 Vu / téléchargé :4 100 / 309

Auteur : OverDarck

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • <?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
  • ?>
<?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...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip LE CALENDRIER POUR FAN DE STARGATE !!!!
UN VRAI CALENDRIER PERPETUEL INFINI DANS LE PASSÉ !
LIRE LES ID3V1 TAG (+RAPIDE, +COURT)
ADVANCED MP3 LISTEUR
"COMPILATEUR PHP"

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

Commentaires et avis

Commentaire de koko le 09/03/2003 08:43:11

c vraiment cool mais tu devrais revoir la sécurité !!!
http://localhost/webexplorer.php3?rep=../..
et hop tu peux voyager dans le pc...

Commentaire de OverDarck le 15/03/2003 23:29:27

La faille de securitée est complettement réparée maintenant plus de problemes et en plus ce script gere les iconnes comme celui d'apache !

Commentaire de koko le 16/03/2003 08:45:51

à la bonne heure :D

Commentaire de Akn le 23/04/2003 02:43:06

C'est génial ! Mais ou trouver les icones ?

Commentaire de OverDarck le 23/04/2003 15:54:18

les icones normalement sont fournits avec le serveur apache

Commentaire de thepopolinux le 03/06/2003 11:41:03

Salut mon frère !
ç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

Commentaire de archervd le 30/08/2006 21:34:02

euh moi je veux bien mais ça marche pas ...
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_ ..>"

Commentaire de archervd le 30/08/2006 21:45:06

ah et je viens de remarquer que je n'ai pas non plus le répertoire parent (enfin il ne s'affiche pas ..)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales