ordner in array einlesen und sortieren

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

  • ordner in array einlesen und sortieren

    hallo.

    ich beiße mir gerade die zähne daran aus den ordnerinhalt in ein array einzulesen und das array dann noch in umgekehrter reihenfolge anzeigen zu lassen.
    vielleicht kann mir ja hier jemand weiterhelfen.

    mein ansatz:
    PHP-Code:
    if (is_dir($ordner)) {
           if (
    $dh opendir($ordner)) {
               while ((
    $file readdir($dh)) !== false) {
                   if (
    $file != "." AND $file != ".."){
                   
    $wo fopen($ordner $file "r");
                        
    $zeile1 = array(fgets($wo150));
                }
               }
               
    closedir($dh);
           }
        } 
    ich habe leider keine ahnung wie ich die schleife ins array bekomme, so ist jede zeile ihr eigenes array (glaub ich zumindest). in dem ordner sind textdateien von denen die erste zeile dann als link wiedergegeben wird, das bekomme ich auch ohne probleme hin nur es sollte halt in ungekehrter reihenfolge angezeigt werden.

  • #2
    sort(), asort() und Kollegen schon kennengelernt? Gibt es auch reverse ...

    Kommentar


    • #3
      ja die hab ich schon gefunden aber damit geht nicht mit dem was ich jetzt habe. wenn ich reverse eingebe bekomme ich immer eine meldung das ich ein array dafür benötigen würde.

      Kommentar


      • #4
        Re: ordner in array einlesen und sortieren

        Original geschrieben von ostyle
        ich habe leider keine ahnung wie ich die schleife ins array bekomme, so ist jede zeile ihr eigenes array (glaub ich zumindest).
        Umgangssprachlicher Murks, der dann seine Fortsetzung im Programmcode findet ...


        Was du wohl eigentlich möchtest, ist jeden im Laufe der Schleife ermittelten Datensatz als ein neues Element im Array abzulegen.

        Wie das geht, steht im Manual bzgl. Arrays ganz gut erklärt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Re: Re: ordner in array einlesen und sortieren

          Original geschrieben von wahsaga
          Umgangssprachlicher Murks, der dann seine Fortsetzung im Programmcode findet ...
          es sind halt nicht alle so tolle progger so manch einer hier, ich halte mich mit meinen fragen hier schon sehr zurück und suche lieber 2 stunden! wenn man dann mal nicht klar kommt wird man nur schräg angemacht, find ich sehr traurig...

          ich frage hier weil ich keine ahnung habe wie ich das problem hinbekomme, aber ich werde dann auch nocheinmal das manual fragen vielleicht versteh ich es ja diesesmal...

          vielen dank auch

          Kommentar


          • #6
            glob()?

            Kommentar


            • #7
              so nun bin ich wirklich am ende.
              ich bekomme es hin das mir die erste zeile der jeweiligen datei angezeigt wird, ich bekomme es auch hin da einen link drauf zu setzten ich bekomme es nur nicht hin das mir die letzte datei im verzeichnis als erstes angezeigt wird, vielleicht hat ja doch jemand noch eine idee wie ich das realisieren kann?

              Kommentar


              • #8
                Hast du die Daten jetzt in ein Array eingelesen, und gibst sie dann aus diesem aus?
                Dann sind wir wieder bei den anfänglichen Tipps ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  wenn ich ja etwas mit den anfänglichen tipps anfangen könnte würde ich ja nicht nach hilfe fragen.
                  also nochmal.
                  ich komme einfach nicht dahinter wie ich das mit der schleife hinbekomme.
                  ich habe es jetzt so versucht:
                  PHP-Code:
                         $arr = array();
                      
                  $ordner "/verzeichnis/";
                             if (
                  $dh opendir($ordner)) {
                                      while ((
                  $file readdir($dh)) !== false) {
                                          if (
                  $file != "." AND $file != ".."){
                                              
                  $wo fopen($ordner $file "r");
                                              
                  $zeile1 fgets($wo150);
                                          }    
                          
                  $arr .= $zeile1;
                          
                  $arr .= "<br>";
                                          }
                                 
                  closedir($dh);
                             }
                          echo 
                  $arr
                  es werden dann auch die daten die ich möchte ausgegeben. leider kann ich sie nicht umdrehen. vielleicht ein kleiner tipp wo der denkfehler liegt? ich habe bis jetzt nur mit datenbanken gearbeitet da ist sowas ja einfach. mit dateien und ordnern komm ich leider noch nicht wirklich klar.

                  Kommentar


                  • #10
                    Du hast die Daten immer noch nicht zuerst in ein Array eingefügt, sondern hängst sie nur in einem String hintereinander - damit ist ein sortieren mit vertretbarem Aufwand nicht mehr möglich.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      ok, das vesteh ich. doch leider habe ich keine ahnung wie ich das zusammenbekommen soll?
                      ich hab nen totales brett vorm kopf. ich verstehe einfach nicht wie ich die daten ins array bekomme.

                      Kommentar


                      • #12
                        $arr[]= $zeile1."<br>";

                        [edit] bevor die nächste frage kommt:
                        rsort($arr);
                        echo implode('', $arr);
                        wobei der zeilenumbruch auch bei implode rein könnte
                        Zuletzt geändert von 3DMax; 22.08.2006, 19:21.

                        Kommentar


                        • #13
                          so vielen dank an euch jetzt geht es. so schwer hab ich mich noch nie getan und es war doch eigentlich so einfach.
                          hier noch mal das komplette ding:

                          PHP-Code:
                           $arr = array();
                              
                          $ordner "/verzeichnis/";
                                     if (
                          $dh opendir($ordner)) {
                                              while ((
                          $file readdir($dh)) !== false) {
                                                  if (
                          $file != "." AND $file != ".."){
                                                      
                          $wo fopen($ordner $file "r");
                                                      
                          $zeile1 fgets($wo150);
                                                  }    
                                                  
                          $arr[]= $zeile1."<br>";
                                              }
                                         
                          closedir($dh);
                                     }
                                  
                          $arr1 array_reverse($arr);
                                  
                          $anz count($arr1);
                                  for(
                          $i 0$i $anz$i++){
                                  echo 
                          $arr1[$i];
                                  } 
                          es gibt bestimmt schönere scripte aber das hier funktioniert.
                          es ließt das angegebene verzeichnis aus,
                          öffnet die dateien und gibt die erste zeile zurück
                          und ganz wichtig es dreht die reihenfolge um.
                          vielen dank nochmal

                          Kommentar


                          • #14
                            hallo nochmal,

                            ich habe noch ein anderes problem mit dem thema hier. ich habe es noch etwas umgeschrieben:
                            PHP-Code:
                              <?php 
                                $arr 
                            = array();
                                
                            $ordner $_SERVER['DOCUMENT_ROOT'] . "/news/";
                                       if (
                            $dh opendir($ordner)) {
                                                while ((
                            $file readdir($dh)) !== false) {
                                                
                                                    if (
                            $file != "." AND $file != ".."){
                                                        
                            $wo fopen($ordner $file "r");
                                                        
                            $zeile1 file($ordner $file "r");
                                                        
                                                        
                            $anz count($zeile1);
                                                        
                            $arr[] = "<p class=\"head\">" $zeile1[0] . "</p>";
                                                        for(
                            $i=1$i$anz;$i++) {
                                                        
                            $arr[] = $zeile1[$i];
                                                        }
                                                    }
                                                }
                                           
                            closedir($dh);
                                       }
                                    
                            $anz count($arr);
                                    for(
                            $i 0$i $anz$i++){
                                    echo 
                            nl2br($arr[$i]);
                                }
                                
                            ?>
                            nur leider durch die änderung klappt es mit dem umdrehen der reihenfolge nicht mehr. mit array_reverse dreht er mir auch den text um, wie kann ich das hier realisieren?
                            olli

                            Kommentar


                            • #15
                              am ende
                              PHP-Code:
                              for($i anz-1$i >= 0$i--)
                              echo 
                              nl2br($arr[$i]); 

                              Kommentar

                              Lädt...
                              X