Ankündigung

Einklappen
Keine Ankündigung bisher.

Sortieren von Dateiausgabe mit scandir

Einklappen

Neue Werbung 2019

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

  • Sortieren von Dateiausgabe mit scandir

    Hallo Leute,

    ich hoffe, dass ihr mir weiterhelfen könnt, denn im Internet habe ich zu diesem Problem bis jetzt leider nichts finden können.

    Ich möchte alle Dateien ausgeben, die sich in einem der Subordner meines Ordners befinden und diese nach dem Alphabet sortieren. Die Ausgabe funktioniert bereits problemlos, allerdings bekomme ich das mit der Sortierung nicht hin.

    PHP-Code:
    <?php
                    
                        
    function listFolderFiles($dir){
                        
    $ffs scandir($dir);
                        
    $i 0;
                        
    $list = array();
                        foreach ( 
    $ffs as $ff ){
                            if ( 
    $ff != '.' && $ff != '..' ){
                                if ( 
    strlen($ff)>=) {
                                    if ( 
    substr($ff, -4) == '.mp3' ) {
                                        
    $list[] = $ff;
                                        
    //echo dirname($ff) . $ff . "<br/>";
                                        
    echo '<tr><td>'.$ff.'</td></tr>';
                                    }    
                                }       
                                if( 
    is_dir($dir.'/'.$ff) ) 
                                        
    listFolderFiles($dir.'/'.$ff);
                            }
                        }
                        return 
    $list;
                    }
                    
                    
    $files = array();
                    
    $files listFolderFiles(dirname(__FILE__));
                    
    ?>
    Hoffe das mir jemand von euch helfen kann.

    MfG
    Stefan

  • #2
    Joa, also meine Tipps mal zum Allgemeinen:

    - die "." und ".." lassen sich gut mit is_file() rausfiltern: http://php.net/is_file
    - auf mp3 prüfen am Besten mit finfo_file(), nicht alles was auf .mp3 endet ist MP3 (oder umgekehrt): http://php.net/manual/de/function.finfo-file.php
    - die Überprüfung auf strlen($ff) > 5 würde die Verzeichnispointer (., ..) auch rausfiltern. Die Überprüfung ist sowieso Bullshit.

    Allerdings sehe ich bei dir auch keine Sortierung. scandir() sortiert alphabetisch aufsteigend, bei Angabe des entsprechenden Parameters umgekehrt.
    [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

    Kommentar


    • #3
      PHP-Code:
      $files = array();
      $files listFolderFiles(dirname(__FILE__)); 
      Ansonsten ganz allgemein.. $files ist ja nun dein Array mit den Dateinamen, das kannst auch noch (um)sortieren, falls nötig/gewünscht. http://php.net/manual/de/array.sorting.php

      Zur Info noch zum Auslesen, verschiedene Ansätze/Beispiele: http://php-de.github.io/jumpto/verzeichnis-auslesen/
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar

      Lädt...
      X