Ausgabe ändern?

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


      • #4
        Originally posted by phppower View Post
        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

        Comment


        • #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>';
          ?>

          Comment


          • #6
            Mit return?

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

            Comment


            • #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]

              Comment


              • #8
                Originally posted by phppower View Post
                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

                Comment


                • #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

                  Comment


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

                    Comment


                    • #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.

                      Comment


                      • #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.

                        Comment


                        • #13
                          Originally posted by phppower View Post
                          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.

                          Comment


                          • #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
                            Last edited by ; 18-08-2010, 18:11. Reason: nicht wirklich getestet

                            Comment


                            • #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.

                              Comment

                              Working...
                              X