Function mehrfach aufrufen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Function mehrfach aufrufen?

    Hallo zusammen,

    ich habe auf meiner Seite aktuell folgende Funktion eingebaut. Sie funktioniert auch einwandfrei.

    Nun würde ich diese Funktion gerne auf einer Seite mehrfach aufrufen, d.h. die Dateien aus verschiedenen Verzeichnissen zählen. Aber er zählt mir immer nur die Dateien aus dem ersten Aufruf...

    Hat jemand eine Idee, wie ich Dateien aus verschiedenen Verzeichnissen zählen kann?

    Danke schonmal!

    Hier der Code:
    PHP-Code:
    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]++;
              }
              } 
            } 

          
    // 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

      
    $dir1="../verzeichnis1/verzeichnis1/";
      
    $atest1=count_file($dir1);

      echo
    "<br />DIRECTORIES: ".$atest1[directory];
      echo
    "<br />FILES: ".$atest1[file];

      
    $dir2="../verzeichnis2/verzeichnis2/";
      
    $atest2=count_file($dir2);
      echo
    "<br />DIRECTORIES: ".$atest2[directory];
      echo
    "<br />FILES: ".$atest2[file];
      

      
    $dir3="../verzeichnis3/verzeichnis3/";
      
    $atest3=count_file($dir3);
      echo
    "<br />DIRECTORIES: ".$atest3[directory];
      echo
    "<br />FILES: ".$atest3[file]; 

  • #2
    könnte eventuell an deinem chdir liegen


    beim ersten aufruf wechselt du in das verzeichnis ../verzeichnis1/verzeichnis1/


    beim zweiten aufruf wechselst du in das verzeichnis ../verzeichnis1/verzeichnis2/, allerdings dürfte sich das auf ../verzeichnis1/verzeichnis1/ beziehen, womit du bei ../verzeichnis1/../verzeichnis1/verzeichnis2/ wärst

    schau dir lieber mal http://www.php.net/realpath an
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Perfekt, vielen Dank!!!

      Genau daran lag es...

      Viele Grüße
      Dan

      Kommentar

      Lädt...
      X