Ankündigung

Einklappen
Keine Ankündigung bisher.

Verzeichnis einlesen und sortieren

Einklappen

Neue Werbung 2019

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

  • Verzeichnis einlesen und sortieren

    Hallo Forumsleutz,
    bin noch nicht so ganz fit mit PHP, habe mir aber ein Script gebastelt das mir ein Verzeichnis ausliest und auch sauber darstellt. Würde es gerne aber nach Datum sortiert haben(wann die Datei auf den Server übertragen worden ist) und zwar mit @filemtime krieg das aber irgendwie nicht gebacken.
    Hier der Code:
    PHP-Code:
    <?php
    $verzeichnisname 
    "xyz"// Verzeichnisname angeben
    $verzeichnis openDir($verzeichnisname); // Öffnet das Verzeichnis
    while ($file readDir($verzeichnis)) { // Verzeichnis lesen
     
    if($file != substr_count($file,".html")) { // Dateityp filtern
      
    $datei fOpen($verzeichnisname "/" $file"r"); // Datei zum lesen öffnen
      
    $inhalt fRead($datei1000); // 1000 Zeichen lesen
      
    fClose($datei); // Datei schließen
      
    ereg("<title>(.*)<\/title>" $inhalt $titel); // Titel extrahieren
      
    $sub_titel explode(" - ",$titel[1]);
      echo 
    "<div align=\"center\"><span class=\"link\">$sub_titel[0]</span>&nbsp; -<span class=\"head\"> $sub_titel[1]</span> <a href=\"$verzeichnisname/$file\" target=\"main\">
    <img src=\"
    $verzeichnisname/pics/down2.gif\" width=\"80\" height=\"15\" border=\"0\"></a><br></div>\n"// Link und Text erstellen
     
    }
    }
    closeDir($verzeichnis); // Verzeichnis schließen
    ?>
    Habe das gefunden aber wie baue ich das in meinen Code ein:
    filemtime ( string filename)
    (gibt den Timestamp der letzten Änderung/Erstellung zurück)
    PHP-Code:
    $handle=opendir('.'); 
    while (
    $file readdir ($handle)) { 
    if (
    $file != "." && $file != "..") { 
    $i++;
    $a[$i][0] = $file;
    $a[$i][1] = filemtime($file); //gegebenfalls noch absoluten Pfad dazu


    }
    closedir($handle); 
    sort ($a); 
    Ich hoffe ich habe das Problem gut genug erklärt und schon mal vielen Dank für eure Hilfe.

    Gruß Steppe


  • #2
    Hallo und Willkommen im Forum!

    Ja schreibst du denn auch ein Datum mit in die Datei hinein nach dem du auch sortieren kannst? Das vermisse ich in deinem Code! (Ich hoffe ich habe es nicht übersehen)

    Wenn du kein Datum hinen schreibst kann auch keins ausgelesen werden und somit auch nicht nach Datum sortiert werden!

    mfg der Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      Hallo Litterauspirna,


      sorry wenn ich mich falsch ausgedrückt habe. Ich meine, nach Datum auslesen wie die Dateien auf den Server übertragen werden, neueste zuerst usw.
      Es handelt sich um einen Newsletter, der wird jeden Monat übertragen und als Archiv wird das Verzeichnis ausgelesen und sollte nach Möglichkeit nach dem Einstellungsdatum sortiert werden das auf dem Server liegt.
      So besser erklärt.

      Danke schonmal
      Gruß Steppe

      Kommentar


      • #4
        Du kannst (Dateiname, Titel, mtime) für jede Datei in einem Feld speichern und dann mit usort() sortieren.

        Kommentar


        • #5
          Tut mir leid nach der Beschreibung wie du es jetzt geschrieben hast kann ich dir leider nicht helfen da ich davon keine Ahung habe!

          mfg der Litter
          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
          http://www.lit-web.de

          Kommentar


          • #6
            Hallo David,

            hast Du vielleicht ein Beispiel für mich, ich blick gerade gar nix.

            Gruß Steppe

            Kommentar


            • #7
              Zitat von David Beitrag anzeigen
              Du kannst (Dateiname, Titel, mtime) für jede Datei in einem Feld speichern und dann mit usort() sortieren.
              Das willst Du. Und ich nehme jetzt als Beispiel:
              Du kannst (i, rand()) für jedes i=0..17 speichern und dann mit usort() nach dem zweiten Element (der Zufallszahl) sortieren.
              PHP-Code:
              <?php
              $alle 
              = array();
              for(
              $i=0$i<18$i++)
              {
                
              $e = array($irand(010000))
                
              $alle[] = $e;
              }
              print_r($alle);

              // und jetzt sortieren wir aufsteigend nach Element [1]
              function foo($a$b)
              {
                if (
              $a[1]<$b[1])
                  return -
              1;
                else if(
              $a[1]==$b[1])
                  return 
              0;
                else 
                  return 
              1;
              }

              usort($alle'foo');
              print_r($alle);
              PHP: usort - Manual

              Kommentar


              • #8
                Hi David,

                erst mal vielen Dank. Wie baue ich das denn in mein Script ein, habe einfach keinen Plan.

                Gruß Steppe

                Kommentar


                • #9
                  Bauen wir erstmal filemtime() in Dein Skript ein.
                  Wenn Du einfach nur den Wert von filemtime() zusammen mit dem Dateinamen und dem Titel ausgeben wolltest, wo und wie würdest Du das filemtime() einbauen?

                  Kommentar


                  • #10
                    Steppenwolf, wenn du keine Lust und keine Ahnung hast, dann stell das ganze doch ins Gesuche.
                    "Mein Name ist Lohse, ich kaufe hier ein."

                    Kommentar

                    Lädt...
                    X