Michael_B42: Langsames count_file Script

Beitrag lesen

Hallo Zusammen

Ich habe mir in den letzten Monaten eine Fotogalerie zusammen gesetzt und ein count_file Script zum JPGs zählen eingesetzt. Nur leider läuft das Script mit zunehmender Menge der Bilder immer langsamer. Zur Zeit befinden sich rund 5200 Bilder in der Galerie und das Zählen dauert immer länger. Gibt es schnelleres Script zum Bilder zählen?

Ich hänge das Verwendete mal an:

  
  
<?PHP  
  function count_file($dir)  
    {  
  
    // Ueberprueft ob das angegebene Verzeichnis existiert  
    if(is_dir($dir))  
      {  
      $afile[directory]=0;  
      $afile[file]=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))  
          {  
          if(strstr($file,".JPG")){ //Nur .jpg-Dateien anzeigen...  
  
          // file um eins erhoehen  
          $afile[file]++;  
          }  
          }  
  
  
  
  
          // Handelt es sich bei $file um eine Datei?  
        if(is_file($file))  
          {  
          if(strstr($file,".jpg")){ //Nur .jpg-Dateien anzeigen...  
  
          // 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="gast_galerien/";  
  $atest=count_file($dir);  
  echo"".$atest[file];  
  
  ?>  
  

Danke für eventuelle Inputs

Gruss Michael