Ausgabe ändern?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe ändern?

    Hallo,

    hab mir mit Hilfe einiger Vorschläge ein Script zusammengestellt, welches Ordner sowie Unterordner ausliest. Das funktioniert zwar, aber so wie es jetzt ist möchte ich es eigentlich nicht. Es soll im Prinzip nur die Gesamtmenge aller benannten Dateiendungen ausgegeben werden. Ich quäle mich jetzt schon einige Tage damit rum und finde keine passende Lösung. Vielleicht kann mir ja hier einer helfen.

    Hier mal mein Code:

    PHP-Code:
    <?php
    ini_set
    ('display_errors'TRUE);
    error_reporting(E_ALL);
    function 
    get_files($dir,&$endungen)
    {
    $result = array();
    foreach(
    glob($dir.'/*') as $file)
    {
    $path_parts pathinfo($file);
    if(   
    is_file($file) &&
    isset(
    $path_parts['extension']) &&
    in_array($path_parts['extension'],$endungen)
    $result[] = $file;
    if(
    is_dir($file))
    $result array_merge($result,get_files($file,&$endungen));
    }
    return 
    $result;
    }
    $dir './files';
    $endungen = array('jpg','gif','png');
    foreach(
    get_files($dir,&$endungen)  as $file) echo $file.'<br>';
    ?>

  • #2
    Schau dir mal hier die ersten beiden Einstiegstutorials an. Da geht es um dein Thema. Ist zwar OOP, aber vielleicht hilft es dir weiter. Notfalls ziehst du dir einfach die Lösung des zweiten Einstiegstutorials und nutz die.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      erstmal danke für die Antwort und den Tip. Nur leider ist das genau das was ich im moment ja habe. Ich finde da keinen Hinweis für die Zählung der Datein.

      mfg

      Kommentar


      • #4
        Zitat von phppower Beitrag anzeigen
        erstmal danke für die Antwort und den Tip. Nur leider ist das genau das was ich im moment ja habe. Ich finde da keinen Hinweis für die Zählung der Datein.

        mfg
        Ups, hab was überlesen. Anstatt die Dateien in das Array zu schreiben, baust du einen Counter ein und zählst den hoch.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hab jetzt die Zählfunktion eingesetzt denke mal auch an richtiger Position nur wie setze ich nun die Ausgabe anders?

          PHP-Code:
          <?php
          ini_set
          ('display_errors'TRUE);
          error_reporting(E_ALL);
          function 
          get_files($dir,&$endungen)
          {
          $i 0;
          $result = array();
          foreach(
          glob($dir.'/*') as $file)
          {
          $path_parts pathinfo($file);
          if(   
          is_file($file) &&
          isset(
          $path_parts['extension']) &&
          in_array($path_parts['extension'],$endungen)
          $result[] = $file;
          if(
          is_dir($file))
          $result array_merge($result,get_files($file,&$endungen));
          $i++;
          }
          return 
          $result;
          }
          $dir './files';
          $endungen = array('jpg','gif','png');
          foreach(
          get_files($dir,&$endungen)  as $file) echo $file.'<br>';
          ?>

          Kommentar


          • #6
            Mit return?

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              ich meinte eigentlich wie ich diese zeile verändern müsste:

              PHP-Code:
              foreach(get_files($dir,&$endungen)  as $file) echo $file.'<br>'
              [COLOR=#000000][COLOR=#006600]

              return ist ja schon drin
              [/COLOR][/COLOR]

              Kommentar


              • #8
                Zitat von phppower Beitrag anzeigen
                ich meinte eigentlich wie ich diese zeile verändern müsste:

                PHP-Code:
                foreach(get_files($dir,&$endungen)  as $file) echo $file.'<br>'
                [COLOR=#000000][COLOR=#006600]

                return ist ja schon drin
                [/COLOR][/COLOR]
                Wolltest du nicht einfach nur die Gesamtzahl haben? dann gib nach der Schleife in der Funktion einfach $i per return zurück.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Hi,

                  ich weiß nicht so recht, hab mir nicht alles genau durchgelesen.
                  Vielleicht kannste ja hievon was gebrauchen aus mein Code-Archiv:

                  Dateianzahl in einem Ordner auslesen

                  PHP-Code:
                  <?php 
                     $dir 
                  "./verzeichnis"
                     
                  $DIR  opendir"/verzeichnis" ); 
                     while ( ( 
                  $file readdir$DIR ) ) !== false ) { 
                        if ( 
                  $file != "." && $file != ".." ) { 
                           
                  $files[] = $file
                        } 
                     } 
                     
                  closedir $DIR ); 
                     echo 
                  "Im Ordner " $dir ." sind "count $files ) . " Dateien."
                  ?>
                  oder etwas mehr im Detail

                  PHP-Code:
                  <?php 

                  $dir 
                  "./pfad_zum_verz"

                  $DIR  opendir"$dir); 
                     while ( ( 
                  $file readdir$DIR ) ) !== false ) { 
                        
                  // JPG Dateien 
                        
                  if(eregi('(\.jpg)$'$file$jpgdateien)){ 
                           
                  $jpgfiles[] = $file
                           
                  $jpgsize += sprintf("%.2f",filesize($file)/1024); 
                         } 
                        
                  // GIF Dateien 
                         
                  if(eregi('(\.gif)$'$file$gifdateien)){ 
                           
                  $giffiles[] = $file
                           
                  $gifsize += sprintf("%.2f",filesize($file)/1024); 
                        } 
                        
                  // PHP Dateien 
                         
                  if(eregi('(\.php)$'$file$phpdateien)){ 
                           
                  $phpfiles[] = $file
                           
                  $phpsize += sprintf("%.2f",filesize($file)/1024); 
                        } 
                     } 
                     
                  closedir $DIR ); 
                     echo 
                  "Im Ordner " $dir ." sind "count $jpgfiles ) . "$jpgdateien[1] Dateien mit $jpgsize KB.<br>"
                     echo 
                  "Im Ordner " $dir ." sind "count $giffiles ) . "$gifdateien[1] Dateien mit $gifsize KB.<br>"
                     echo 
                  "Im Ordner " $dir ." sind "count $phpfiles ) . "$phpdateien[1] Dateien mit $phpsize KB.<br>"
                  ?>
                  Die Ausgabe beim letzten wäre dann so:

                  Im Ordner ./pfad_zum_verz sind 3.jpg Dateien mit 635.8 KB.
                  Im Ordner ./pfad_zum_verz sind 5.gif Dateien mit 21.81 KB.
                  Im Ordner ./pfad_zum_verz sind 5.php Dateien mit 2.82 KB.
                  Mfg kalle

                  Kommentar


                  • #10
                    hab ich versucht kommt aber nix bei raus. Ich könnte echt durch drehen.

                    Kommentar


                    • #11
                      PHP: eregi - Manual
                      Diese Funktion ist seit PHP 5.3.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

                      Kommentar


                      • #12
                        die Funktion steht net in meinem code und um den geht es ich suche eine Lösung auf die ich bisher selber nicht gekommen bin. Die einfache zählmethode funzt hier nicht, es werden ordner mitgezählt und das soll nicht.

                        Kommentar


                        • #13
                          Zitat von phppower Beitrag anzeigen
                          Die einfache zählmethode funzt hier nicht, es werden ordner mitgezählt und das soll nicht.
                          Ja dann zähl' die Ordner halt einfach nicht mit, in dem du vorher prüfst, ob es sich um einen Ordner oder eine Datei handelt ...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            dein erstes beispiel umgebaut gibt dir zumindestens schonmal was zählbares zurück:

                            PHP-Code:
                            ini_set('display_errors'TRUE);
                            error_reporting(E_ALL);

                            function 
                            get_files($dir,&$endungen)
                            {
                            $i 0;
                            $result = array();
                            foreach(
                            glob($dir.'/*') as $file)
                            {
                            $path_parts pathinfo($file);
                            if(   
                            is_file($file) &&
                            isset(
                            $path_parts['extension']) &&
                            in_array($path_parts['extension'],$endungen)
                            $result[$path_parts['extension']][] = $file;
                            if(
                            is_dir($file))
                            $result array_merge($result,get_files($file,&$endungen));
                            $i++;
                            }
                            return 
                            $result;
                            }
                            $dir './style';
                            $endungen = array('jpg','gif','png');
                            foreach(
                            get_files($dir,&$endungen)  as $fileprint_r$file).'<br>'
                            edit: sorry, funktioniert so nicht richtig. sollte den code vorher mal ansehen :P
                            Zuletzt geändert von ; 18.08.2010, 19:11. Grund: nicht wirklich getestet

                            Kommentar


                            • #15
                              das der code mir was zählbares ausgibt sehe ich ja selbst. die zählfunktion $i=0 und $i++ sind auch schon drin nur bei der ausgabe ansich schlägt alles fehl was ich versuche.

                              Kommentar

                              Lädt...
                              X