Pedda: Ordner/Dateien/Grafiken zählen

Hallo zusammen,

ich möchte in einem Ordner und in allen seinen Unterordnern die Anzahl der Verzeichnisse und Dateien zählen.
Dazu hab' ich mir schon von diversen Seiten etwas "geklaut", verzweifel aber daran, dass ich AUCH feststellen muss, bei wievielen der Dateien es sich um Grafiken handelt....

Hier mal der code :
**********************************************************
function count_file($dir) {
// Ueberprueft ob das angegebene Verzeichnis existiert
if(is_dir($dir)) {
$afile[directory]=0;
$afile[file]=0;
$afile[bild]=0;
chdir($dir);
$handle=opendir(".");
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]++;   // **** DER Wert stimmt im Ergebnis
// ist es eine grafik ?
$afile[bild]++;   // **** müsste doch so den selben Wert erhalten wie $afile[file] !? IST ABER immer "22" ?!?
//*********************************
// ob es sich um eine grafik handelt muss natürlich noch geprüft werden, aber es besteht ja anscheinend schon ein Problem mit der Variable !?
//*********************************
}
}
// 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 />Verzeichnisse ".$atest[directory]; // im Test 95
echo"<br />Dateien ".$atest[file];   // im Test 3634
echo"<br />Grafiken ".$atest[bild];  // im Test 22 (und NICHT wie erwartet 3634)
echo"<br />";

**********************************************************

Kann mir von euch jemand sagen wo ich den Fehler hab, bzw. kennt jemand eine (einfachere) Möglichkeit Ordner, Dateien und Grafiken zu zählen ??

Thnx

Gruss
Pedda

  1. Problem gelöst !
    Die "22" war die Anzahl der files im root-ordner *g*
    Es fehlte :
    $afile[bild]+=$y[bild];
    ;-)

    Gruss
    Pedda