Explorateur tout en php (lecture de dossiers,...)

Description

La page lit les dossiers et affiche dossiers et fichiers qui s'y trouve, on peut trier et naviguer dans les dossiers...

Source / Exemple :


<HTML>
<HEAD>
<LINK rel=stylesheet type="text/css" href="style.css">
</HEAD>
<BODY>
<?PHP

$chemin = getcwd();
$chemin = strtr($chemin."/","\\","/");
if ($curr == "") $curr = $chemin;
echo ("<TITLE>".$curr."</TITLE>");
echo ("<H2>".$curr."</H2><B>Escpace libre:</B> ".number_format(diskfreespace($curr)/1000,3,","," ")." Ko<BR>\n");
$fds = opendir($curr);
rewinddir($fds);
$n = 0;
$d = 0;
$r = 0;
$typ = array("file" => "Fichier","dir" => "Dossier","0" => "Inconnu");
if ($tri == "n") $imgn = "<IMG SRC=ordo.gif>";
if ($tri == "t") $imgt = "<IMG SRC=ordo.gif>";
if ($tri == "s") $imgs = "<IMG SRC=ordo.gif>";
if ($tri == "d") $imgd = "<IMG SRC=ordo.gif>";
echo ("<TABLE BORDER=0 CELLSPACING=0 CELLPADING=0>\n<TR BGCOLOR=#CCCCCC><TD WIDTH=150><A HREF=\"?curr=$curr&tri=n\">Nom</A>$imgn</TD><TD ALIGN=CENTER><A HREF=\"?curr=$curr&tri=t\">Type</A>$imgt</TD><TD WIDTH=100 ALIGN=RIGHT><A HREF=\"?curr=$curr&tri=s\">Taille</A>$imgs</TD><TD WIDTH=200 ALIGN=RIGHT><A HREF=\"?curr=$curr&tri=d\">Dernière modification</A>$imgd</TD></TR>");
$vale = "";
if ($curr != "") $vale = dirname($curr)."/";
if ($vale == "./") $vale = "";
while ($ggg = readdir($fds))
{if ($ggg == "..")
  {if ($curr != "") echo ("<TR><TD COLSPAN=4><A HREF=\"index.php?curr=$vale&tri=$tri\"><IMG SRC=\"ico\\ret.gif\" BORDER=0> ..</TD>\n");
  }
  elseif (is_dir($curr.$ggg))
  {if ($ggg != ".")
      {$tabn[$d] = $ggg;
       $tabt[$d] = "dossier";
       $tabs[$d] = "";
       $tabd[$d] = filemtime($curr.$ggg);
       $d++;
       $r++;
      }
  }
  elseif (is_file($curr.$ggg))
  {$ext = substr($ggg,strrpos($ggg,".")+1,strlen($ggg)-strrpos($ggg,".")-1);
   if (! is_file("ico/$ext.gif")) $ico = "file";
   if (strtoupper($ext) == substr(strtoupper($ggg),1)) $ext = "";
   $n++;
   $tai += filesize($curr.$ggg);
   $tabn[$d] = $ggg;
   $tabt[$d] = "fichier ".strtoupper($ext);
   $tabs[$d] = filesize($curr.$ggg);
   $tabd[$d] = filemtime($curr.$ggg);
   $d++;
   }
}
if ($tri == "") $tri = "n";
if ($tri == "n")
{ @uasort($tabn,"strnatcasecmp");
  while (list($k,$v) = @each($tabn))
  {$ggg = $v;
   $ext = $tabt[$k];
   $ico = strtolower(substr($ggg,strrpos($ggg,".")+1,strlen($ggg)-strrpos($ggg,".")-1));
   if (! is_file("ico/$ico.gif")) $ico = "file";
  if (is_dir($curr.$ggg)) echo ("<TR><TD><A HREF=\"index.php?curr=$curr$ggg/&tri=$tri\"><IMG SRC=\"ico\\dir.gif\" BORDER=0> $ggg</TD><TD WIDTH=75 ALIGN=CENTER>".$typ[filetype($curr.$ggg)]."</TD><TD></TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  if (is_file($curr.$ggg)) echo ("<TR><TD><A HREF=\"$curr$ggg\" TARGET=_blank><IMG SRC=\"ico\\$ico.gif\" BORDER=0> $ggg</A></TD><TD WIDTH=75 ALIGN=CENTER>".$ext."</TD><TD ALIGN=RIGHT>".number_format((filesize($curr.$ggg)/1000), 3, ","," ")." Ko</TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  }
}
elseif ($tri == "t")
{ @uasort($tabt,"strnatcasecmp");
  while (list($k,$v) = @each($tabt))
  {$ggg = $tabn[$k];
   $ext = $v;
   $ico = strtolower(substr($ggg,strrpos($ggg,".")+1,strlen($ggg)-strrpos($ggg,".")-1));
   if (! is_file("ico/$ico.gif")) $ico = "file";
  if (is_dir($curr.$ggg)) echo ("<TR><TD><A HREF=\"index.php?curr=$curr$ggg/&tri=$tri\"><IMG SRC=\"ico\\dir.gif\" BORDER=0> $ggg</TD><TD WIDTH=75 ALIGN=CENTER>".$typ[filetype($curr.$ggg)]."</TD><TD></TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  if (is_file($curr.$ggg)) echo ("<TR><TD><A HREF=\"$curr$ggg\" TARGET=_blank><IMG SRC=\"ico\\$ico.gif\" BORDER=0> $ggg</A></TD><TD WIDTH=75 ALIGN=CENTER>".$ext."</TD><TD ALIGN=RIGHT>".number_format((filesize($curr.$ggg)/1000), 3, ","," ")." Ko</TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  }
}
elseif ($tri == "s")
{ @uasort($tabs,"strnatcasecmp");
  while (list($k,$v) = @each($tabs))
  {$ggg = $tabn[$k];
   $ext = $tabt[$k];
   $ico = strtolower(substr($ggg,strrpos($ggg,".")+1,strlen($ggg)-strrpos($ggg,".")-1));
   if (! is_file("ico/$ico.gif")) $ico = "file";
  if (is_dir($curr.$ggg)) echo ("<TR><TD><A HREF=\"index.php?curr=$curr$ggg/&tri=$tri\"><IMG SRC=\"ico\\dir.gif\" BORDER=0> $ggg</TD><TD WIDTH=75 ALIGN=CENTER>".$typ[filetype($curr.$ggg)]."</TD><TD></TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  if (is_file($curr.$ggg)) echo ("<TR><TD><A HREF=\"$curr$ggg\" TARGET=_blank><IMG SRC=\"ico\\$ico.gif\" BORDER=0> $ggg</A></TD><TD WIDTH=75 ALIGN=CENTER>".$ext."</TD><TD ALIGN=RIGHT>".number_format((filesize($curr.$ggg)/1000), 3, ","," ")." Ko</TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  }
}
elseif ($tri == "d")
{ @uasort($tabd,"strnatcasecmp");
  while (list($k,$v) = @each($tabd))
  {$ggg = $tabn[$k];
   $ext = $tabt[$k];
   $ico = strtolower(substr($ggg,strrpos($ggg,".")+1,strlen($ggg)-strrpos($ggg,".")-1));
   if (! is_file("ico/$ico.gif")) $ico = "file";
  if (is_dir($curr.$ggg)) echo ("<TR><TD><A HREF=\"index.php?curr=$curr$ggg/&tri=$tri\"><IMG SRC=\"ico\\dir.gif\" BORDER=0> $ggg</TD><TD WIDTH=75 ALIGN=CENTER>".$typ[filetype($curr.$ggg)]."</TD><TD></TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  if (is_file($curr.$ggg)) echo ("<TR><TD><A HREF=\"$curr$ggg\" TARGET=_blank><IMG SRC=\"ico\\$ico.gif\" BORDER=0> $ggg</A></TD><TD WIDTH=75 ALIGN=CENTER>".$ext."</TD><TD ALIGN=RIGHT>".number_format((filesize($curr.$ggg)/1000), 3, ","," ")." Ko</TD><TD WIDTH=200 ALIGN=RIGHT>".date("d/m/Y h:i:s",filemtime($curr.$ggg))."</TD></TR>\n");
  }
}
$tai = ($tai/1000);
echo ("<TR BGCOLOR=#999999><TD COLSPAN=3 ALIGN=RIGHT><FONT COLOR=#DDDDDD><B>".number_format($tai, 3, ","," ")." Ko</B></FONT></TD><TD></TD></TR>");
$plu = "";
if ($n>1) $plu = "s";
$plus = "";
if ($d>1) $plus = "s";
echo ("</TABLE><BR>\n $n fichier$plu et $r dossier$plus \n");
?>
</BODY>
</HTML>

Conclusion :


Je mets le code sans le commenter car c'est pas compliqué. Ah oui, il faut normalement des images pour les icônes et une feuille de style, car le script cherche si l'êxtention a un icone dans le dossier, sinon il met celui par défaut. Le mieux c'est de prendre le zip, tout y est!

Codes Sources

A voir également

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.