Ankündigung

Einklappen
Keine Ankündigung bisher.

Verzeichnis auslesen und gruppiert darstellen

Einklappen

Neue Werbung 2019

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

  • Verzeichnis auslesen und gruppiert darstellen

    Hallo Leute, wie ihr seht, ist das mein erstes Posting. Meine php-Kenntnisse sind leider sehr beschränkt, deswegen müsst ihr wahrscheinlich etwas geduldig mit mir sein. :-/

    Folgendes Problem:
    In einem Verzeichnis liegen diverse pdf-Dokumente. Diese sollen nach dem Beginn des Dateinamens gruppiert dargestellt werden.

    Dateinamenbeispiele:
    14I15-02 xxx.pdf
    14I15-01 yyy.pdf
    13I14-10 xxx.pdf
    13I14-03 yyy.pdf
    12I13-09 zzz.pdf
    Herauskommen soll dann folgendes:
    Saison 12I13:
    12I13-09 zzz.pdf

    Saison 13I14:
    13I14-10 xxx.pdf
    13I14-03 yyy.pdf

    Saison 14I15
    14I15-02 xxx.pdf
    14I15-01 yyy.pdf
    Natürlich sollen die pdf's verlinkt werden.

    Folgenden Code habe ich vor einiger Zeit irgendwo im Internet einmal gefunden:

    PHP-Code:
    <?php
        $buchstabe_alt 
    "";
        
    $verzeichnis openDir("pdfs");
        while (
    $file readDir($verzeichnis)) {
         if (
    $file != "." && $file != "..") {
          
    $buchstabe strtoUpper(substr($file05));
          if (!
    strstr($buchstabe_alt$buchstabe)) {
           
    $buchstabe_alt .= $buchstabe;
           
    // Anfangsbuchstaben anzeigen
           
    echo "<br>Saison " $buchstabe "<br>"
          }
            
    // Dateityp filtern. Es werden nur .pdf-Dateien angezeigt
            
    if (strstr($file".pdf")) {
            
    // Dateiendung vom Dateinamen filtern
            
    $name explode("."$file);
          echo 
    "<a href=\"pdfs/$file\" target=\"_blank\">$name[0]</a><br>\n";
            }
          }
        }
        
    closeDir($verzeichnis);
    ?>
    Leider klappt das nicht wie gewünscht, ab und zu schmeisst er mir eine "14I15"-pdf in die "13I14"-Gruppe.

    Als Zusatzinfo solltet ihr wissen, dass die Dateinamen bis zu 30 Zeichen inkl Extension lang sein können.

    Als zusätzliches Feature wäre noch praktisch, wenn in den Dateinamen Umlaute vorhanden sein könnten.

    Ich hoffe ich habe mich einigermaßen deutlich ausgedrückt?

    Schon einmal besten Dank für eure Hilfe.


  • #2
    Erst auslesen und sammeln, dann Sortieren, dann Gruppenbruch
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Ich würde da anders rangehen:

      1. Dateinamen mit glob() einlesen
      2. Das entstandene Array mit sort() sortieren
      3. Das sortierte Array in Gruppen unterteilen

      PHP-Code:
      foreach( $sortedArray as $filename ){
       
      $group substr$filename0);
       
      $groupedArray$group ] = $filename;

      4. Mal das Ergebnis ausgeben lassen, print_r($groupedArray);
      5. Die entstandene Struktur durchlaufen

      PHP-Code:
      foreach( $groupedArray as $group => $filenames ){
       foreach( 
      $filenames as $filename ){
       ...
       }

      6 entsprechend Überschriften und Links setzen
      You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

      Kommentar


      • #4
        Zitat von tkausl Beitrag anzeigen
        Erst auslesen und sammeln, dann Sortieren, dann Gruppenbruch
        Zitat von chorn Beitrag anzeigen
        Ich würde da anders rangehen:

        1. Dateinamen mit glob() einlesen
        2. Das entstandene Array mit sort() sortieren
        3. Das sortierte Array in Gruppen unterteilen
        o'realy?

        Ich les da genau das gleiche
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Zitat von lstegelitz Beitrag anzeigen
          o'realy?

          Ich les da genau das gleiche
          Und das obwohl die Posts 5 Minuten auseinanderliegen! Wie hast du das nur geschafft?!
          You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

          Kommentar

          Lädt...
          X