Ordner auslesen und in Tabelle Dateien anzeigen

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

  • Ordner auslesen und in Tabelle Dateien anzeigen

    Hallo, ich habe hier ein Skript, das ich gefunden und soweit an meine Bedürfnisse angepasst habe. Nur hätte ich gern noch, dass die neuesten Dateien die ich in den Ordner lege, als letztes in der Tabelle stehen. Habe es mit array_multisort schon probiert, aber entweder es passiert gar nix oder eine Fehlermeldung. Hab mal das Skript ohne das arry_multisort angehängt, hoffe mir kann einer helfen. Bin noch Anfänger in PHP und würde mich über Hilfe freuen, danke.

  • #2
    ...kannst du mit filetime() herausfinden und dann sortieren

    Kommentar


    • #3
      Das hilft mir nicht wirklich weiter. Die Beispiele bei PHP.net sind irgendwie nie passend, bzw. unverständlich. Um das mit multisort zu sortieren muss ich ja die Funktion filemtime() mit ins Array reinbekommen, an welcher Stelle muss ich das denn abfragen? Ich schaue bei PHP leider noch nicht so durch. sry Quelltext ist als Anhang dabei.
      Angehängte Dateien

      Kommentar


      • #4
        naja, ein array mit dem ganzen kram hast du ja schon, denn du benutzst stat(), welches dir als 9. element (bzw. das unter dem schlüssel "mtime") die gewünschte information zu jeder datei bereits speichert.

        array_multisort() ist wirklich nicht leicht, aber du kannst dich in den user notes auf der seite umschauen - dort gibt es evtl. eine fertige lösung.

        hint: schaue dir das array mit den ganzen dateien mittels print_r() an, dann verstehst du seine struktur.

        Kommentar


        • #5
          Dankeschön. Also wie ich jetzt gesehen hab (durch print_r) ist, dass er auf dem Platz 0 den Pfad, auf Platz 1 den Dateinamen, der 2 den Timestamp und auf der 3 die Größe speichert. Also müsste mein Array_multisort (sofern ich die Beschreibung des Befehls verstanden hab) so heißen:

          array_multisort($all_stat[2], SORT_NUMERIC, SORT_ASC); oder?

          Habs grad ausprobiert, klappt aber auch nicht.

          Hab mir schon mal ein paar Lösungen angeguckt, nur war bis jetzt noch nicht das Passende dabei. Dieses wäre schon alles was ich bräuchte.
          Muss ich wohl weitersuchen. Trotzdem danke, das hat mir schon weiter geholfen, auch wenn ich immernoch nicht weiss wie ich das richtig machen soll.

          Kommentar


          • #6
            So wie ich die Beschreibung lese (und gemäss dem dritten Beispiel im Manual)
            PHP-Code:
            //das 3. Element als einen neuen Array sortkey anlegen:
            $sortkey=array();
            foreach (
            $all_stat as $index=>$zeile$sortkey[$index ]=$zeile[2];
            array_multisort($sortkey,$sort_all);
            //oder mit expliziten sortflags
            array_multisort($sortkey,SORT_NUMERICSORT_ASC,$sort_all);
            //SORT_NUMERIC weil mtime ein timestamp also Zahl ist. 
            //Vielleicht geht auchSORT_REGULAR, der default.
            //
            //Effekt, zuerst wird alles nach $sortkey sortiert, 
            //dann noch (überflüssigerweise) nach $sort_all.
            unset($sortkey); // wird nicht mehr gebraucht. 
            Frage wie werden eigentlich Elemente die selber arrays sind, verglichen und sortiert?? hier also der zweite Schlüssel $sort_all


            Dann ist übrigens
            PHP-Code:
            $all_stat=array(array());
            //Anzahl der Dateien im Verzeichnis ermitteln
            array_push ($all_stat,array($path$file$timestamp$size)); //Dateiinfos zu Array hinzufügen 
            auch noch falsch (logisch), es sollte
            PHP-Code:
            $all_stat=array();
            //Dateien im Verzeichnis ermitteln
            $all_stat[]=array($path$file$timestamp$size); 
            heissen
            Zuletzt geändert von globqluqqlo; 21.03.2006, 11:09.

            Kommentar


            • #7
              Ich sag ja, ich komm mit den Beispielen im Manual nicht klar

              Jetzt habe ich mal deine Variante ausprobiert und bekam diese Fehlermeldung (wiederholend):

              Warning: array_multisort(): Argument #2 is expected to be an array or a sort flag in /usr/export/www/vhosts/funnetwork/hosting/hiphoprulez/test.php on line 68

              Warning: array_multisort(): Argument #4 is expected to be an array or a sort flag in /usr/export/www/vhosts/funnetwork/hosting/hiphoprulez/test.php on line 70

              Da haut also immernoch was nich hin, werde mir das aber heut abend nochmal in aller Ruhe angucken. Danke für deine Mühe.

              Kommentar


              • #8
                Toll,
                (a) welche Variante, aus den fehlermeldungen ist schon klar, dass Du nicht gemerkt hast dass ich zwei Varianten angab.
                (b) ich hatte einen Schreibfehler, es sollte $all_stat heissen (wo $sort_all)
                Ich sag ja, ich komm mit den Beispielen im Manual nicht klar
                Das dritte Beispiel ist genügend klar, ausser es fehlt an den computersprachunabhängigen kenntnissen maw in einer anderen Programmiersprache würde es auch nicht gehen.

                TrotzdemdankefürdieFrageichhabedarausmehrgelerntalsDu.
                Zuletzt geändert von globqluqqlo; 21.03.2006, 14:41.

                Kommentar


                • #9
                  das du 2 varianten gegeben hast, hab ich schon verstanden, ich hatte es auch nur eins von beiden benutzt (Jaja, ich kann die Kommentare schon lesen). Und danke für den Sarkasmus, wie egsagt, ich hätte es mir heut abend sowieso noch mal genauer angeschaut!

                  Kommentar


                  • #10
                    die fehlermeldungen sind zeile 68 (argument2) und zeile 70 (argument4) bzw. Gemerkt aber Nicht reagiert.

                    Viel Spass heute abend.

                    Kommentar


                    • #11
                      Cool, das funktioniert tatsächlich! Herzlichen Dank für deine Hilfe und deine Mühe.

                      Jetzt funktioniert es so wie ich es wollte. Thx!

                      Kommentar


                      • #12
                        Mich würde noch interessieren, wie array_multisort einen array of arrays sortiert, wie hier $all_stat. По молчанию (stillschweigend, by default) müsste es nach Tabelle 15-5 gehen. Was meint ihr?

                        In den Usercomments ist noch eine Warnung, dass wenn array_multisort in einer Function mysort($a,$b) aufgerufen wird, die arrays nicht als Funktionsparameter "by value" sortiert werden, sondern wie Funktionsparameter "by reference" sortiert werden (wie wenn mysort (&$a, &$b) stehen würde) und wie man es umgehen kann. Allerdings aus dem Jahre 2001.Und Be careful when using array_multisort() on copies of arrays, as you might end up changing the original array, von April 2005. Und etwas im Zusammenhang mit Session Variabeln, auch April 2005.
                        Zuletzt geändert von globqluqqlo; 22.03.2006, 10:17.

                        Kommentar


                        • #13
                          Ich habe array_multisort noch nie für eine sonderlich brauchbare Funktion gehalten ... (oder hab ich es nur nie richtig verstanden?)

                          Wenn ich ein mehrdimensionales Array habe, dass ich nach den Inahlten einer bestimmten "Spalte" sortieren will, oder auch ein Array von Objekten, die nach bestimmten Eigenschaften der Objekte sortiert werden sollen, dann nutze ich dafür lieber usort(), und erstelle mir selbst eine Vergleichsfunktion, die zwei "unter-Arrays" oder eben Objekte einem von mir definierten Vergleich unterzieht.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar

                          Lädt...
                          X