<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Liste der Dateien</title>

</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#800080">
<h1>Datei-Liste</h1>

<script language="php">

$verzeichnisname
="/home/example.com/public_html/verzeichnis/unterverzeichnis/";
  
/*
    "Absoluter" Pfad zum Verzeichnis im Dateisystem des Webservers.

    Eine einfache Möglichkeit, um diesen Pfad herauszufinden:
    Machen Sie eine Datei namens phpinfo.php mit folgendem Inhalt:
    <?php phpinfo(); ?>
    Laden Sie diese Datei in das Verzeichnis, dessen Inhalt aufgelistet
    werden soll. Rufen Sie die Datei im Browser über HTTP ab.
    Unter "Apache Environment" in der Variablen "SCRIPT_FILENAME"
    steht der ganze Pfad.
  */

$urlbasis="http://www.example.com/verzeichnis/unterverzeichnis/";
  
/* Pfad zum Verzeichnis von aussen gesehen, d.h. mit http:// beginnend. */

date_default_timezone_set('Europe/Zurich'); /* notwendig ab PHP 5.3, sonst Warnung wegen nicht gesetzter Zeitzone. */

function filesizehuman($bytes)
/* Gibt die Dateigrösse in B, kB, MB oder GB aus, also "menschenlesbar" */
 
{
  
$output="$bytes B"/* Grundsätzlich und wenn unter 1024 Byte: Angabe in B */
  
if ($bytes>=1024/* Ab 1024 Byte: Angabe in kB mit 1 Dezimalstelle */
     
{
      
$kb=sprintf("%01.1f",$bytes/1024);
      
$output="$kb kB";
     }
  if (
$bytes>=100*1024/* Ab 100 kB: Angabe in kB ohne Nachkommastellen */
     
{
      
$kb=round($bytes/1024);
      
$output="$kb kB";
     }
  if (
$bytes>=1024*1024/* Ab 1024 kB: Angabe in MB mit 1 Nachkommastelle */
     
{
      
$mb=sprintf("%01.1f",$bytes/1048576);
      
$output="$mb MB";
     }
  if (
$bytes>=1024*1024*1024/* Ab 1024 MB: Angabe in GB mit 1 Nachkommastelle */
     
{
      
$gb=sprintf("%01.1f",$bytes/1073741824);
      
$output="$gb GB";
     }
  return 
$output;
 }

/* Array-Variablen anlegen: */
$dateiliste1 = array();
$dateiliste = array();
$bilderdim = array();

/* Durchlauf: Verzeichnis einlesen, Dateien in Liste erfassen, sortieren: */
$verzeichnis opendir($verzeichnisname);
while((
$eintrag readdir($verzeichnis))!= false)
  {
   if(!
is_dir("$verzeichnisname/$eintrag") AND (($eintrag!=".htaccess") AND ($eintrag!="verboten.html")))
     { 
array_push($dateiliste1,$eintrag); }
  }
closedir($verzeichnis);
natcasesort($dateiliste1);
$dateinummer=0;
foreach(
$dateiliste1 as $eintrag2)
 {
  
$dateinummer++;
  
$dateiliste[$dateinummer]=$eintrag2;
 }
/* Ende Verzeichnis einlesen u.s.w. */


/* Ausgabe: */
echo "<h2>Datei-Liste</h2>\n";

$dateianzahl=count($dateiliste);
if (
$dateianzahl<=0)
  { echo 
"<p><b>Keine (0) Dateien im Verzeichnis [$urlbasis]</b></p>\n"; }
else  
/* d.h. wenn mindestens 1 Datei vorhanden: */
  
{

   echo 
"<p>Total $dateianzahl Datei(en) im Verzeichnis [$urlbasis]</p>\n";

   echo 
"<table border='1' width='100%' cellpadding='3' cellspacing='0'>\n";
   echo 
"<tr>";
   echo 
"<th align='left'>Nr.</th>";
   echo 
"<th align='left'>Dateiname</th>";
   echo 
"<th align='right'>Grösse</th>";
   echo 
"<th align='left'>Hochgeladen</th>";
   echo 
"<th align='left'>Typ</th>";
   echo 
"<th align='left'>Dim.</th>";
   echo 
"</tr>";

   foreach (
$dateiliste as $dateinr => $dateiname)
     {
        
$test $verzeichnisname "/" $dateiname;
        echo 
"<tr>\n";
        echo 
"  <td align='left'>$dateinr</td>\n";
        echo 
"  <td align='left'><a href='$urlbasis$dateiname'>$dateiname</a></td>\n";
        echo 
"  <td align='right'>" filesizehuman(filesize($test)) . "</td>\n";
        echo 
"  <td align='left'>" strftime("%a, %d.%b.%Y, %H:%M"filemtime($test)) . "</td>\n";
        
$bilddim getimagesize($test);
        if (
$bilddim)
           {
            echo 
"  <td align='left'>".strtoupper(image_type_to_extension($bilddim[2],false))."</td>\n";
            echo 
"  <td align='left'>".$bilddim[0]."x".$bilddim[1]."</td>\n";
           }
          else
           {
            echo 
"  <td align='left'>".substr (strrchr(strtoupper($test),"."),)."</td>\n";
            echo 
"  <td align='left'>-</td>\n";
           }
        echo 
"</tr>\n\n";
      } 
/* Ende foreach */

   
echo "</table>";

  } 
/* Ende ELSE-Teil für wenn Dateien vorhanden sind. */

</script>


</body>
</html>