Ausgabe eines Verzeichnisses sortieren

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

  • Ausgabe eines Verzeichnisses sortieren

    Ich habe hier ein Script.

    Ich versuche nun die Ausgabe alphabetisch zu sortieren nur bekomme ich das irgendwie nicht hin.

    Kann mir jemand mal nen Tip geben?? Danke :-)

    PHP-Code:
    <html>
    <head>
            <title></title>
            <link rel="STYLESHEET" type="text/css" href="design.css">
    </head>

    <body>
    <?PHP

    // Stellt den connect zum FTP-Server her //

    if (!$ftp_stream ftp_connect("Servername")) {
    print(
    'Error. Verbindung zum Server konnte nicht geöffnet werden');
    }else{
    print(
    '');
    }

    // Logt den User ein - Bitte vorher für das Verzeichnis einen FTP-User festlegen! //
    // Stellen Sie hier bitte Ihre Daten ein!                                         //

    if (!ftp_login($ftp_stream,"USER","PASS")) {
    print(
    "");
    } else {
    print(
    "");
    }


    // öffnet das Verzeichniss //

    $handle=opendir ('.');

    echo 
    "<div align=\"center\">Dateien:</div>\n<br><br>";
    while (
    false !== ($file readdir ($handle))) {

    // Verhindert die Ausgabe der Unterverzeichnisse //
    if($file=="."){
    echo
    "";
    }
    elseif(
    $file==".."){
    echo
    "";
    }

    // Versteckt die Skript-Dateien //

    elseif($file=="index.html"){
    echo
    "";
    }
    elseif(
    $file=="main.php"){
    echo
    "";
    }
    elseif(
    $file=="werbung.php"){
    echo
    "";
    }
    elseif(
    $file=="design.css"){
    echo
    "";
    }

    // Versteckt sämtliche Verzeichnise //

    elseif(is_dir ($file)){
    echo
    "";
    }

    else {

    // Ausgabe der Dateien //

    $view=pathinfo($file);
    $view1=$view["extension"];


    echo 
    '<div align="center">::&nbsp;<a href="'.$file.'">'.$file."</a>&nbsp;::</div><br>";
    }
    }

    // Schliesst das Verzeichniss //

    closedir($handle);
    ?>












    </body>
    </html>
    Zuletzt geändert von PPOTarget; 21.01.2004, 14:53.

  • #2
    1.
    ich hoffe du hast da nicht deine richtigen ftp-variablen drinne ...

    @mods : aendert mal die daten zum verbinden ....
    2.
    pack doch die adtein die ausgegenen werden sollen in einen array und sortiere den dann mit den array funktionen
    also pack dein $file in ein array und schau dir diese funktionen mal an :
    http://de3.php.net/manual/de/ref.array.php

    gruss
    iglo
    Zuletzt geändert von kapitaeniglo; 21.01.2004, 14:51.

    Kommentar


    • #3
      Danke für beide Tips...

      Nur komme ich nicht ganz klar wie ich das Array nun definieren soll....



      PHP-Code:
      $file = array 

      Ich bin da entweder zu blond zu oder ich weiss nicht

      Kommentar


      • #4
        du erschaffst dir nen array ...

        $filearray = array();

        in der whileschleife liest du jeweils das aktuelle element in das array ...

        wenn er fertig ist, haste dann nen array in dem alle elementen drinnen stehen ...
        diesen sortierst du mit einer von dir als gut empfundenn array-sortier funktion ...
        danach gibste das wieder ueber eine schleife aus ...

        alles was du brauchst duerftest oben im link finden ...

        gruss
        iglo

        p.s. hab grad net mehr zeit ... sonst wuerd ich auch code maessig helfen,
        aber eigentlich ist das net so schwer ...

        Kommentar


        • #5
          Wenn Du mir bei Gelegenheit doch evtl helfen könntest wäre ich echt dankbar....

          Kommentar


          • #6
            derzeit gibst du in deinem script in der schleife, die sich durchs dateisystem wühlt, die daten direkt aus:

            PHP-Code:
            $view=pathinfo($file);
            $view1=$view["extension"];

            echo 
            '<div align="center">::&nbsp;<a href="'.$file.'">'.$file."</a>&nbsp;::</div><br>"
            (btw: die ganzen "leer-ausgaben" mit echo "" kannst du dir ja eigentlich mal sparen, oder?)


            statt hier direkt auszugeben, schreibst du die dateinamen also hier nur in ein array:

            $dateinamen[] = $file;


            dieses kannst du dann anschliessend nach der schleife erstmal sortieren, und anschliessend in einer weiteren schleife (z.b. mit foreach) ausgeben ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ich tüftle nun schon 2 tage. Nachdem ich nun sortiere und versuche auszugeben, erhalte ich auf dem Bildschirm dan lauter Ausgaben ::ARRAY::
              in der genauen Anzahl, in der Files in dem Verzeichniss sind. Wo liegt mein Denkfehler? Oder kann mir jemand helfen bitte?
              PHP-Code:
              <html>
              <head>
                      <title></title>
                      <link rel="STYLESHEET" type="text/css" href="design.css">
              </head>

              <body>
              <?PHP

              // Stellt den connect zum FTP-Server her //

              if (!$ftp_stream ftp_connect("Server")) {
              print(
              'Error. Verbindung zum Server konnte nicht geöffnet werden');
              }else{
              print(
              '');
              }

              // Logt den User ein - Bitte vorher für das Verzeichnis einen FTP-User festlegen! //
              // Stellen Sie hier bitte Ihre Daten ein!                                         //

              if (!ftp_login($ftp_stream,"USER","PASS")) {
              print(
              "");
              } else {
              print(
              "");
              }



              // öffnet das Verzeichniss //

              $handle=opendir ('.');

              echo 
              "<div align=\"center\">Dateien:</div>\n<br><br>";
              while (
              false !== ($file readdir ($handle))) {


              // Verhindert die Ausgabe der Unterverzeichnisse //
              if($file=="."){
              echo
              "";
              }
              elseif(
              $file==".."){
              echo
              "";
              }

              // Versteckt die Skript-Dateien //

              elseif($file=="index.html"){
              echo
              "";
              }
              elseif(
              $file=="main.php"){
              echo
              "";
              }
              elseif(
              $file=="werbung.php"){
              echo
              "";
              }
              elseif(
              $file=="design.css"){
              echo
              "";
              }

              // Versteckt sämtliche Verzeichnise //

              elseif(is_dir ($file)){
              echo
              "";
              }

              else {

              // Ausgabe der Dateien //

              $view=pathinfo($file);
              $view1=$view["extension"];
              $dateinamen[] = $file;

              sort($dateinamen);
              $f=$dateinamen;


              echo(
              '<div align="center">::&nbsp;<a href="'.$f.'">'.$f."</a>&nbsp;::</div><br>");
              }
              }

              // Schliesst das Verzeichniss //

              closedir($handle);
              ?>


              </body>
              </html>

              Kommentar


              • #8
                hmm,

                ist ja klar.

                du gibts $f aus ....
                und das ist ein array ... du solltest also einen index benutzen f[index].

                btw: der preis für den ersten platz im 'wie verpacke ich möglichst einfache sachen in möglichst viel (viel mehr) code* geht an dich

                EDIT:
                tu doch alles files, die nicht in der ausgabe erschienen sollen, in ein array und prüfe dann nur mit in_array
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Ich bin echter Laie in Punkto PHP....schnief...
                  Hab mich da echt hart durchwurschteln müssen.

                  wie meinst Du das mit Index...Heul

                  Kommentar


                  • #10
                    wie meinst Du das mit Index...Heul
                    die inhalte eines arrays werden durchnummeriert, und dann über den numerischen index angesprochen (beginnend bei 0):

                    PHP-Code:
                    $array = array ('wert_1','wert_2','wert_3');
                    echo 
                    $array[0]; // Gibt wert_1 aus
                    echo $array[2]; // Gibt wert_3 aus 
                    probiert mal
                    PHP-Code:
                    for ($i 0$i sizeof($f); $i++)
                    {
                       echo 
                    $f[$i][0];

                    gruss
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      hmm,

                      PHP-Code:
                      sort($dateinamen);
                      $f=$dateinamen
                      hier sortierst du da array $dateinamen? und weist es $f zu ... somit ist $f auch ein array. wenn du $f ausgibst, erhälts du logischerweise 'Array'. zur veranschaulichung kannst du ja mal
                      PHP-Code:
                      echo "<pre>",
                      print_r($f); 
                      einfügen ....

                      du müßtest
                      PHP-Code:
                      foreach ($dateinamen as $dateiname) {
                        
                      ausgabe();

                      oder so verwenden, denn du willst ja mehrere files ausgeben ...

                      außerdem solltest du den ganzen unnötigen scheiß rausschmeißen, ...
                      PHP-Code:
                      $FilesToIgnore = array(
                        
                      ".",
                        
                      "..",
                        
                      "index.html",
                        
                      "main.php",
                        
                      "werbung.php",
                        
                      "design.css"
                      );

                      $handle=opendir ('.');
                      while (
                      $file readdir ($handle)) {
                        if(!
                      in_array($file$FilesToIgnore) || is_dir($file)) {
                          echo 
                      $file."<br>";
                        }
                      closedir($handle); 
                      und so weiter ...
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Also, wenn ich jetzt das Script so ändere:
                        PHP-Code:
                        <html>
                        <head>
                                <title></title>
                                <link rel="STYLESHEET" type="text/css" href="design.css">
                        </head>

                        <body>
                        <?PHP

                        // Stellt den connect zum FTP-Server her //

                        if (!$ftp_stream ftp_connect("Server")) {
                        print(
                        'Error. Verbindung zum Server konnte nicht geöffnet werden');
                        }else{
                        print(
                        '');
                        }

                        // Logt den User ein - Bitte vorher für das Verzeichnis einen FTP-User festlegen! //
                        // Stellen Sie hier bitte Ihre Daten ein!                                         //

                        if (!ftp_login($ftp_stream,"USER","PASS")) {
                        print(
                        "");
                        } else {
                        print(
                        "");
                        }



                        // öffnet das Verzeichniss //

                        $handle=opendir ('.');

                        echo 
                        "<div align=\"center\">Dateien:</div>\n<br><br>";
                        while (
                        false !== ($file readdir ($handle))) {


                        // Verhindert die Ausgabe der Unterverzeichnisse //
                        if($file=="."){
                        echo
                        "";
                        }
                        elseif(
                        $file==".."){
                        echo
                        "";
                        }

                        // Versteckt die Skript-Dateien //

                        elseif($file=="index.html"){
                        echo
                        "";
                        }
                        elseif(
                        $file=="main.php"){
                        echo
                        "";
                        }
                        elseif(
                        $file=="werbung.php"){
                        echo
                        "";
                        }
                        elseif(
                        $file=="design.css"){
                        echo
                        "";
                        }

                        // Versteckt sämtliche Verzeichnise //

                        elseif(is_dir ($file)){
                        echo
                        "";
                        }

                        else {

                        // Ausgabe der Dateien //

                        $view=pathinfo($file);
                        $view1=$view["extension"];
                        $dateinamen[] = $file;

                        //sort($dateinamen);
                        foreach ($dateinamen as $f) {
                          echo(
                        '<div align="center">::&nbsp;<a href="'.$f.'">'.$f."</a>&nbsp;::</div><br>");
                        }



                        }
                        }

                        // Schliesst das Verzeichniss //

                        closedir($handle);
                        ?>


                        </body>
                        </html>
                        bekomme ich weiterhin eine völlig wirre Ausgabe. Auch wenn ich die Sort Funktion vorher ausführe!

                        Bitte schaut euch die Ausgabe doch mal an:

                        http://www.ppo-clan.de/maps/cs_maps/main.php

                        Jede Datei ist aber in diesem Verzeichnis nur einmal vorhanden.
                        Am liebsten würde ich die Dateien in einer Tabelle ausgeben, immer ca 10 Stück untereinander und nach der 10ten in einer neuen Spalte daneben...

                        Also langsam komm ich nicht mehr klar....
                        Zuletzt geändert von PPOTarget; 26.01.2004, 13:41.

                        Kommentar


                        • #13
                          warum steht deine foreach-schleife zur ausgabe des array-inhaltes denn bitte in der while-schleife, die das verzeichnis durchgeht?

                          schwachfug hoch 10 ...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar

                          Lädt...
                          X