[PHP]
<?php
//Ueberschrift SolutionCenter ... , Blau, Zentriert, Linie unter der UEberschrift
print("<h1 style='color:blue' align='center'>SolutionCenter Service 4 U</h1><hr align='center'>");
//Datum
print (date("D, d F Y -- H:i"));
echo "<br><br>"; //neue Zeile nach dem Datum
echo "<table border=1 width=50% align=center bordercolor=#009900>";
echo "<tr>\n";
echo "<td width=50% align=CENTER Â >";
echo "<b>Thema </b>";
echo "</td>\n";
echo "<td width=50% align=CENTER Â >";
echo "<b>Anzahl der Dateien</b>";
echo "</td>\n";
echo "</tr>\n";
echo "</table>";
// **** START der Funktion
function travelDirectorys($DIR) {
// in der Variable "output" werden die Verzeichnisnamen gespeichert
//in denen die Datei "index.html" vorkommt
$output = array();
// Wenn das letzte Zeichen des angegebenen Directorys kein Slash
//ist, dann fuege diesen hinzu
// Das ist noetig weil weiter unten im Code die Anweisung "$DIR .
//$entry" kommt. Wenn in $DIR also
// zB. "/var/www" gespeichert waehre und $entry "irgendwas"
//enthaelt, dann wuerde dadurch "/var/wwwirgendwas"
// entstehen, deshalb wird an das $DIR noch ein Slash angehaengt
//damit "/var/www/irgendwas" entsteht...
if(substr($DIR, -1) != "\\") $DIR .= "\\";
// erzeuge eine Liste aller Eintrage in einem Verzeichnis
$d = @dir($DIR);
// gehe jeden Eintrag in dieser Liste durch
if (!is_object($d)) return NULL;
while (false !== ($entry = $d->read()))
{
// die Verzeichniseintraege "." und ".." werden auch mit
//aufgelistet, deshalb muessen diese ausgeschlossen werden
if($entry != "." && $entry != "..") {
// Wenn der Verzeichniseintrag selbst ein Verzeichnis ist...
if( is_dir($DIR.$entry)) {
// dann durchsuche dieses Verzeichnis ebenfalls komplett
// und haenge dessen Ergebnisse an die bereits
//vorhandene Ergebnisliste an
$h = travelDirectorys($DIR.$entry);
if (is_array($h) && is_array($output))
$output = array_merge($output, $h);
// Wenn ein Eintrag "index.html" heisst
// (ignoriere gross/kleinschreibung indem die Funktion
//"strtolower" einfach alles in kleinschreibung umwandelt )
} elseif( strtolower($entry) == "index.html") {
// Haenge das aktuelle Verzeichnis an die Ergebnisliste an
$output[] = $DIR.$entry;
}
}
}
// schliesse die Verzeichnisliste wieder
$d->close();
// Gebe die Ergebnisliste zurueck
return $output;
}
// **** ENDE der Funktion
// ***** Benutzen der Funktion
// Aufrufen der Funktion mit dem Verzeichnis das durchsucht werden soll
$result = travelDirectorys("D:\\");
// Sorge dafuer dass in der Ergebnisliste kein Eintrag mehrfach
//vorkommt
$result = array_unique($result);
// durchwandere die Ergebnisliste und zeige jeden Eintrag an
foreach($result AS $entry) {
//trenne den Eintrag an den Slashes auf.
$name = explode("\\", $entry);
//drehe das Array einfach um...
$name = array_reverse($name);
//schneide das index.html aus
$name = array_slice($name, 1);
//sollte der erste Eintrag leer sein (sollte so sein, wenn man nur die //Pfade zurück bekommt), nimm den nächsten.
if (!empty($name[0])) $name = $name[0];
else $name = $name[1];
$entry = substr ($entry,2);
$stat= stat($entry);
$link = "<a href=\.$entry. >$name</a>\n";
echo "<table border=1 width=50% align=center bordercolor=#009900 >";
echo "<tr>\n";
echo "<td width=50% align=center  >";
echo $link;
echo "</td>\n";
echo "<td width=50% align=center  >";
echo"<br />DIRECTORIES: ".$atest[directory] ;
echo "</td>\n";
echo "</tr>\n";
}
echo "</table>";
function count_file($dir)
{
// Ueberprueft ob das angegebene Verzeichnis existiert
if(is_dir($dir))
{
$afile[directory]=0;
$afile[file]=0;
chdir($dir);
$handle=opendir("D:\\CISCO");
while($file=readdir($handle))
{
// Handelt es sich bei $file um ein Unterverzeichnis?
if(is_dir($file) && $file!="." && $file!="..")
{
// directory um eins erhoehen
$afile[directory]++;
// rekursiver Aufruf mit aktuellem Verzeichnis
$y=count_file($file);
// Ergebnisse des rekursiven Aufrufs der Funktion zu
// directory und file aufaddieren
$afile[directory]+=$y[directory];
$afile[file]+=$y[file];
}
// Handelt es sich bei $file um eine Datei?
if(is_file($file))
{
// file um eins erhoehen
$afile[file]++;
}
}
// Verzeichnisstruktur zurueck gehen
if(stristr($dir,"../")) chdir($_SERVER["DOCUMENT_ROOT"].substr($_SERVER["PATH_INFO"],0,strrpos($_SERVER["PATH_INFO"],"/")));
elseif($dir!=".") chdir("../");
closedir($handle);
}
return $afile;
}
// Aufruf der Funktion
$dir=".";
$atest=count_file($dir);
echo"<br />DIRECTORIES: ".$atest[directory] ;
echo"<br />FILES: ".$atest[file];
echo"<br />";
[/PHP]