readdir - ungeordnet

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

  • readdir - ungeordnet

    Hallo

    ich lese in einem Verzeichnis einige Dateien aus um die Inhalte dann in einer Html-seite anzeigen zu lassen (Terminseite)

    das sieht das ungefähr so aus

    PHP-Code:
    $handle=opendir($public_files); 
    while (
    $termin_file readdir ($handle)){ 
        if (
    $termin_file != "." && $termin_file != ".." ) { 
    {
    if(!
    ereg(".txt",$termin_file)==0)
     
    $lines file("$public_files$termin_file"); 
    Ich las zu READDIR folgendes:
    string readdir ( int dir_handle)

    Ermittelt den nächsten Dateinamen im Verzeichnis. Die Dateinamen werden ungeordnet zurück gegeben.

    Na toll .. genau das ist mein Problem, er listet mir alles ungeordnet auf.
    wie bekomme ich es hin, dass er nach Dateinamen auflistet ?? (ich bestimme den dateinamen selbst, daher wäre das die einfachste methode die Listung zu steuern.


    BURNI
    PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

  • #2
    du packst alle Dateinamen in ein array, sortierst das Array und gibst die Dateinamen dann aus.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      du packst alle Dateinamen in ein array, sortierst das Array und gibst die Dateinamen dann aus.
      Hallo

      danke für den Hinweis TobiaZ

      falls es jemand interessiert , wie ich es gelöst habe
      (es gibt sicher eine elegantare Lösung, ich bin neu auf diesem gebiet)

      PHP-Code:
      <?php 
      // erstmal auslesen und die dateinamen dem array zuweisen
      $dateinamen = array();
      $counter ;
      $counter2 ;

      $handle=opendir($public_files); 
      while (
      $termin_file readdir ($handle)){ 
          if (
      $termin_file != "." && $termin_file != ".." ) { 
      {
      if(!
      ereg(".txt",$termin_file)==0)
      array_push($dateinamen,$termin_file); // hier wird der dateiname dem array zugewiesen
      $counter++;
      {
      }
      }
      }
      }
      closedir($handle); 

      // weil ich es nicht besser wusste, habe ich einfach mit $counter mitgezählt, egal  es funktioniert so 

      // zählt mit $counter2 hoch bis alle arrays abgearbeitet sind
      while ($counter2 $counter){
      sort($dateinamen); // sortiert !!! - das war ja das, was ich wollte

      $lines file("$public_files$dateinamen[$counter2]"); // ich lese jede Zeile aus

      // hier kommt normal die Funktionalität des zeilen auslesens in eine html .. 
      //ein beispiel
      echo "$lines[7]<br>";

      $counter2++;
      }
      ?>
      BURNI
      PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

      Kommentar


      • #4
        Warum so umständlich? Man muss doch nur das Beispiel aus dem PHP-Handbuch ein wenig abändern:
        PHP-Code:
        $handleopendir($public_files);
        $dateinamen= array();
        while (
        false!==($file readdir($handle)))
        # nur Dateien mit Endung ".txt":
          
        if (ereg('\.txt$'$file)
        # nicht ausgeben sondern ans Array anhängen:
            
        $dateinamen[] = $file# schneller als array_push
        closedir($handle); 
        # sortieren:
        sort($dateinamen);

        # ausgeben:
        foreach($dateinamen as $file)
          echo 
        "<b>$file</b><br>",
            
        nl2br(htmlentities(implode(''file("$public_files$file")))),
            
        '<hr>'
        Ausgabe mit Zeilennummern:
        PHP-Code:
        echo '<table border="1">
        foreach($dateinamen as $file)
        {
          echo '
        <tr>
          <
        th colspan="2">', $file, '</th>
        </
        tr>';
          $text = file("$public_files$file");
          foreach ($text as $n=>$line)
            echo '
        <tr>
          <
        td align="right" valign="top">', $n, '</td>
          <
        td align="left" valign="top">', htmlentities($line), '</td>
        </
        tr>';
        }
        echo '
        </table>'; 
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X