Ankündigung

Einklappen
Keine Ankündigung bisher.

Elegantere Lösung gesucht

Einklappen

Neue Werbung 2019

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

  • Elegantere Lösung gesucht

    Hallo ich habe hier ein Funktion die mir alle Dateien mit dem Namen XY aus dem Ordner '10/' . $jahr . '/11/' sucht. Nun habe ich mehrere socher Ordner, die ich durchsuchen muss.
    Immoment habe ich quasi pro Ordner eine Funktion. Aber irgendwie sieht das nicht wirklich elegant aus mit 5 Funktionen für 5 Ordner.
    Jetzt meine Frage was könnte man hier noch optimieren?


    PHP-Code:
    $Pfad_Jahr_11 '10/' $jahr '/11/';
    $Pfad_Jahr_5 '10/' $jahr '/5/';
    $Pfad_Jahr_39 '10/' $jahr '/39/';
    $Pfad_Jahr_45 '10/' $jahr '/45/';
    $Pfad_Jahr_p '10/' $jahr '/p/';

    function 
    Dateisuche11($Pfad$Suche) {
        
    // Verzeichnis öffnen
        
    $verzeichnis opendir('../ARCHIV/' $Pfad);
        
    // Veriablen definieren
        
    $DateiNamenArray = array();
        
    $html "";
        
    $DateiName "";
        
    // Verzeichnis lesen
        
    while (false !== ($file readdir($verzeichnis))) {
            
    // Höhere Verzeichnisse nicht anzeigen!
            
    if ($file != "." && $file != ".." && (substr_count($file$Suche) >= 1)) {
                
    // zum DateiNamenArray zufügen, um die Ausgabe alphabetisch zu sortieren
                
    $DateiNamenArray[] = $file;
            }
        }
    // Dateien alphabetisch sortieren
        
    sort($DateiNamenArray);
    // Ausgabe der Anzeige-Schleife
        
    foreach ($DateiNamenArray as $Index => $DateiName) {
            
    // Link erstellen und Anzeige
            
    $Dateiname explode("-"$DateiName);
            
    $Monat substr($Dateiname[2], 0, -4);
            
    $html .= '
                    <tr>
                        <td class="Mittig">
                        <a href="../pdfjs/web/viewer.html?file=/ARCHIV/' 
    $Pfad $DateiName '" target="_blank">' $Monat '</a>
                        </td>
                    </tr>'
    ;
        }
        if (
    $DateiName == "") {
            
    $html .= '
                    <tr>
                        <td class="Mittig Rot">Leer</td>
                    </tr>'
    ;
        }
    // Verzeichnis schließen
        
    closedir($verzeichnis);
        return 
    $html;
    }

    $Leistungsnachweis_Jahr_11 Dateisuche11($Pfad_Jahr_11$Suche);
    $Leistungsnachweis_Jahr_5 Dateisuche5($Pfad_Jahr_5$Suche);
    $Leistungsnachweis_Jahr_39 Dateisuche39($Pfad_Jahr_39$Suche);
    $Leistungsnachweis_Jahr_45 Dateisuche45($Pfad_Jahr_45$Suche);
    $Leistungsnachweis_Jahr_p Dateisuche45($Pfad_Jahr_p$Suche); 

  • #2
    Alles was durchnummeriert ist sieht erstmal falsch aus. Deine Pfade kannst du als String ablegen

    PHP-Code:
    $paths = [
     
    '10/%s/123',
     
    '10/%s/234',
    ]; 
    und dann mit sprintf() zusammensetzen und das Jahr als Parameter benutzen. Da kannst du drüber-iterieren und den Pfad und den Suchbegriff benutzen. In nem halben Jahr weiss doch eh keiner mehr was 11/5/39 usw. bedeuten soll. Ausserdem solltest du das HTML da rauskloppen. Wenn du ein Frontend hast, reich die Daten da rein und das Template generiert dir dann die Tabelle.
    [I]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.[/I]

    Kommentar


    • #3
      Zudem würde ich die Dateisuche mit glob() erledigen, das ist wesentlich eleganter und glob gibt dir ein Array mit Pfad und Dateinamen zurück.

      Kommentar

      Lädt...
      X