Php: Verzeichnis mit Datum, Zeit und sortiert auflisten
OKIDOKI (Level 1) - Jetzt verbinden
07.04.2021, aktualisiert 17:37 Uhr, 614 Aufrufe, 17 Kommentare, 1 Danke
Hallo,
bin seit einigen Tagen dabei oben genannte Lösung zu suchen. Eine Auflistung gelingt mir, allerdings bekomme ich es einfach nicht hin, zur jeweiligen Datei auch den Zeitstempel anzeigen zu lassen. Ich habe einzelne Anzeigeblöcke, hier im vorderen Dateinamen "123*", d.h., die Datei sollen nach ihrem Dateinamen, NICHT nach dem Erstellungsdatum sortiert sein!
Btw: Klasse wäre, wenn ich eine Nummerierung der Datein ein- und ausschalten könnte ... also, wüsste, was ich einbauen müsste!
Wäre über einen Tipp dankbar
Gruß
okidoki
bin seit einigen Tagen dabei oben genannte Lösung zu suchen. Eine Auflistung gelingt mir, allerdings bekomme ich es einfach nicht hin, zur jeweiligen Datei auch den Zeitstempel anzeigen zu lassen. Ich habe einzelne Anzeigeblöcke, hier im vorderen Dateinamen "123*", d.h., die Datei sollen nach ihrem Dateinamen, NICHT nach dem Erstellungsdatum sortiert sein!
Btw: Klasse wäre, wenn ich eine Nummerierung der Datein ein- und ausschalten könnte ... also, wüsste, was ich einbauen müsste!
<?php
foreach (glob("123*.php") as $filename) {
echo "<a href=\"$filename\" target=\"_blank\">$filename</a><br>\n";
}
?>
Wäre über einen Tipp dankbar
Gruß
okidoki
17 Antworten
- LÖSUNG warranty schreibt am 07.04.2021 um 17:53:48 Uhr
- LÖSUNG OKIDOKI schreibt am 07.04.2021 um 18:52:19 Uhr
- LÖSUNG wiesi200 schreibt am 07.04.2021 um 20:48:26 Uhr
- LÖSUNG OKIDOKI schreibt am 07.04.2021 um 23:19:00 Uhr
- LÖSUNG wiesi200 schreibt am 08.04.2021 um 06:02:48 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 08:52:24 Uhr
- LÖSUNG wiesi200 schreibt am 08.04.2021 um 09:00:38 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 09:05:21 Uhr
- LÖSUNG warranty schreibt am 08.04.2021 um 09:50:19 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 14:32:06 Uhr
- LÖSUNG warranty schreibt am 08.04.2021 um 15:17:59 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 15:56:45 Uhr
- LÖSUNG wiesi200 schreibt am 08.04.2021 um 20:12:20 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 22:22:03 Uhr
- LÖSUNG wiesi200 schreibt am 08.04.2021 um 20:12:20 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 15:56:45 Uhr
- LÖSUNG warranty schreibt am 08.04.2021 um 15:17:59 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 14:32:06 Uhr
- LÖSUNG warranty schreibt am 08.04.2021 um 09:50:19 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 09:05:21 Uhr
- LÖSUNG wiesi200 schreibt am 08.04.2021 um 09:00:38 Uhr
- LÖSUNG OKIDOKI schreibt am 08.04.2021 um 08:52:24 Uhr
- LÖSUNG wiesi200 schreibt am 08.04.2021 um 06:02:48 Uhr
- LÖSUNG OKIDOKI schreibt am 07.04.2021 um 23:19:00 Uhr
- LÖSUNG wiesi200 schreibt am 07.04.2021 um 20:48:26 Uhr
- LÖSUNG OKIDOKI schreibt am 10.04.2021 um 11:07:03 Uhr
- LÖSUNG warranty schreibt am 10.04.2021 um 11:10:35 Uhr
- LÖSUNG OKIDOKI schreibt am 10.04.2021 um 11:53:30 Uhr
- LÖSUNG warranty schreibt am 10.04.2021 um 11:10:35 Uhr
- LÖSUNG OKIDOKI schreibt am 07.04.2021 um 18:52:19 Uhr
LÖSUNG 07.04.2021, aktualisiert um 22:16 Uhr
$files = glob('123*.php');
asort($files);
$cnt = 1;
foreach($files as $file){
echo "$cnt|$file|" . date('Y-m-d H:i:s',filemtime($file)) . "<br />";
$cnt++;
}
bin seit einigen Tagen dabei oben genannte Lösung zu suchen
Autsch. Wieso noch suchen?! Selbst ist die/der Frau/Mann Gruß w.
LÖSUNG 07.04.2021, aktualisiert um 20:38 Uhr
Oh klasse!
Ich danke dir
Nun habe ich noch einen Zeilenumbruch eingefügt, dann sieht es gleich noch schicker aus ...
Zur Abrundung hatte ich gedacht, ich lese jetzt einfach noch die Datei aus (besteht aus einem Wort, Semikolon, eine Zahl). Nun merke ich aber, dass ein einfaches Einsetzen nicht reicht, zudem benötige ich nur das Wort:
Hast du dazu noch eine Idee?
Bei den einstelligen Zahlen ist durch die fehlende Null ein Versatz, gibt es dazu auch eine Lösung?
Ich danke dir
Nun habe ich noch einen Zeilenumbruch eingefügt, dann sieht es gleich noch schicker aus ...
<?php
$files = glob('123*.php');
asort($files);
$cnt = 1;
foreach($files as $file){
echo "$cnt|$file|" . date('Y-m-d H:i:s',filemtime($file)) . '<br>';
$cnt++;
}
?>
Zur Abrundung hatte ich gedacht, ich lese jetzt einfach noch die Datei aus (besteht aus einem Wort, Semikolon, eine Zahl). Nun merke ich aber, dass ein einfaches Einsetzen nicht reicht, zudem benötige ich nur das Wort:
<?php
$files = glob('123*.php');
asort($files);
inhalt = file_get_content ($files as $file);
$cnt = 1;
foreach($files as $file){
echo "$cnt|$file|" . date('Y-m-d H:i:s',filemtime($file)) . $inhalt . '<br>';
$cnt++;
}
?>
Hast du dazu noch eine Idee?
Bei den einstelligen Zahlen ist durch die fehlende Null ein Versatz, gibt es dazu auch eine Lösung?
1 |1230.php | 22:03:2021 | 14:38:10
2 |1231.php | 22:03:2021 | 14:38:11
3 |1232.php | 22:03:2021 | 14:38:11
4 |1233.php | 22:03:2021 | 14:38:12
5 |1234.php | 22:03:2021 | 14:38:12
6 |1235.php | 22:03:2021 | 14:38:13
7 |1236.php | 22:03:2021 | 14:38:13
8 |1237.php | 22:03:2021 | 14:38:14
9 |1238.php | 22:03:2021 | 14:38:14
10 |1239.php | 22:03:2021 | 14:38:15
LÖSUNG 07.04.2021 um 20:48 Uhr
Hallo,
findet man auch auf der schon angegebenen Seite.
https://www.php.net/manual/de/function.str-pad.php
findet man auch auf der schon angegebenen Seite.
https://www.php.net/manual/de/function.str-pad.php
LÖSUNG 07.04.2021 um 23:19 Uhr
... dann benötige ich eigentlich gar kein Forum mehr ...
da ich totaler Anfänger bin steige ich - trotz mehrfachen Lesens - einfach nicht durch ...
Aber trotzdem danke für deinen Tipp wiesi200!
Insbesondere gilt mein Dank noch einmal warranty! Vielen Dank für deine Mühe 👌
da ich totaler Anfänger bin steige ich - trotz mehrfachen Lesens - einfach nicht durch ...
Aber trotzdem danke für deinen Tipp wiesi200!
Insbesondere gilt mein Dank noch einmal warranty! Vielen Dank für deine Mühe 👌
LÖSUNG 08.04.2021 um 06:02 Uhr
Naja PHP ist eigentlich wirklich gut dokumentiert mit sehr vielen Beispielen und wirklich anfängerfreundlich. Dein Wunsch steht sogar fast 1 zu 1 nur eben mit 4 Stellen relativ weit unten im Kommentarbereich
Wenn du dir mal c++ oder son nen Spaß ansieht wirst du das schnell feststellen.
Bei Zeile 7 beim "echo" anstelle von $cnt kommt der spaß
str_pad($cnt,2,'0',STR_PAD_LEFT)
Somit füllst du auf 2 Stellen mit dem Wert 0 auf der Linken Seite des Strings auf.
Wenn du dir mal c++ oder son nen Spaß ansieht wirst du das schnell feststellen.
Bei Zeile 7 beim "echo" anstelle von $cnt kommt der spaß
str_pad($cnt,2,'0',STR_PAD_LEFT)
Somit füllst du auf 2 Stellen mit dem Wert 0 auf der Linken Seite des Strings auf.
LÖSUNG 08.04.2021, aktualisiert um 09:19 Uhr
Moin,
so, habe alles soweit hinbekommen
!
Mein Problem war, dass ich versucht habe Text einzubinden, allerdings ohne "", was immer wieder zum Absturz führte - ich glaube zu wissen, was ihr denkt ... jetzt aber
Leider erzeugt das Öffnen des files die Meldung "Resource id #6", der Dateiinhalt wird aber nicht angezeigt ...
Readfile ist wohl die bessere Alternative

so, habe alles soweit hinbekommen
Mein Problem war, dass ich versucht habe Text einzubinden, allerdings ohne "", was immer wieder zum Absturz führte - ich glaube zu wissen, was ihr denkt ... jetzt aber
<?php
$files = glob('123*.csv');
asort($files);
$cnt = 1;
foreach($files as $file){
echo str_pad($cnt, 2, "0", STR_PAD_LEFT) . ". " . $file . date('d:m:Y | H:i:s',filemtime($file)) ; readfile("$file", "r"). '<br>';
$cnt++;
}
?>
Leider erzeugt das Öffnen des files die Meldung "Resource id #6", der Dateiinhalt wird aber nicht angezeigt ...
Readfile ist wohl die bessere Alternative
LÖSUNG 08.04.2021 um 09:00 Uhr
LÖSUNG 08.04.2021, aktualisiert um 09:18 Uhr
yep, readfile wars ...
oben geändert, nur, warum steht der Inhalt jetzt am Anfang vor der Aufzählung?
Weil es vor den Punkt mit Semi eingebunden werden muss - schlag vor'n Kopf!
Also, noch einmal vielen Dank für eure Hilfe
oben geändert, nur, warum steht der Inhalt jetzt am Anfang vor der Aufzählung?
Weil es vor den Punkt mit Semi eingebunden werden muss - schlag vor'n Kopf!
Also, noch einmal vielen Dank für eure Hilfe
LÖSUNG 08.04.2021, aktualisiert um 10:03 Uhr
Zitat von @OKIDOKI:
yep, readfile wars ...
oben geändert, nur, warum steht der Inhalt jetzt am Anfang vor der Aufzählung?
Falsche Funktion genommen, readfile ist für die alleinige Auslieferung von Dateien an den Client, nicht zum Auslesen und gleichzeitigen Verarbeiten des Inhalts, dafür gibt's file_get_contentsyep, readfile wars ...
oben geändert, nur, warum steht der Inhalt jetzt am Anfang vor der Aufzählung?
LÖSUNG 08.04.2021, aktualisiert um 14:55 Uhr
Jetzt hast du mich neugierig gemacht 
Wenn diese Funktion zum Verarbeiten ist, wäre es doch möglich, die Ausgabe in einer bestimmten Farbe zu erzeugen, oder?
1. Mein Vorhaben listet die Ergebnisse von Schulaufgaben verschiedener Klassen auf. In den ausgelesenen Dateien steht nur "vollständig" bzw. "unvollständig". Nun würde ich gerne unvollständig in rot und vollständig in grün ausgeben.
Ich hatte mich gerade mit Highlighting beschäftigt, wobei ich glaube, dass es eine Nummer zu groß ist ... und vermutlich mit php einfacher geht, wenn es gleich um das Auslesen und Verarbeiten der Variable geht.
ok, ich denke die Tabelle habe ich im Griff. Ich baue die Tabelle um den php herum, das geht ganz gut!
Es bleiben also Fragen

Wenn diese Funktion zum Verarbeiten ist, wäre es doch möglich, die Ausgabe in einer bestimmten Farbe zu erzeugen, oder?
1. Mein Vorhaben listet die Ergebnisse von Schulaufgaben verschiedener Klassen auf. In den ausgelesenen Dateien steht nur "vollständig" bzw. "unvollständig". Nun würde ich gerne unvollständig in rot und vollständig in grün ausgeben.
Ich hatte mich gerade mit Highlighting beschäftigt, wobei ich glaube, dass es eine Nummer zu groß ist ... und vermutlich mit php einfacher geht, wenn es gleich um das Auslesen und Verarbeiten der Variable geht.
ok, ich denke die Tabelle habe ich im Griff. Ich baue die Tabelle um den php herum, das geht ganz gut!
Es bleiben also Fragen
LÖSUNG 08.04.2021, aktualisiert um 15:39 Uhr
Körner hin werf'
Isch bin dann wech ...
Wenn diese Funktion zum Verarbeiten ist, wäre es doch möglich, die Ausgabe in einer bestimmten Farbe zu erzeugen, oder?
Alles möglich.1. Mein Vorhaben listet die Ergebnisse von Schulaufgaben verschiedener Klassen auf. In den ausgelesenen Dateien steht nur "vollständig" bzw. "unvollständig". Nun würde ich gerne unvollständig in rot und vollständig in grün ausgeben.
Ich hatte mich gerade mit Highlighting beschäftigt, wobei ich glaube, dass es eine Nummer zu groß ist ... und vermutlich mit php einfacher geht, wenn es gleich um das Auslesen und Verarbeiten der Variable geht.
Es bleiben also Fragen

Ah ja never ending Thread mal wieder ...Ich hatte mich gerade mit Highlighting beschäftigt, wobei ich glaube, dass es eine Nummer zu groß ist ... und vermutlich mit php einfacher geht, wenn es gleich um das Auslesen und Verarbeiten der Variable geht.
Es bleiben also Fragen
<?php
$files = glob('123*.php');
asort($files);
$cnt = 1;
$tbl = '<table class="mytable"><tbody><tr><th>No.</th><th>Name</th><th>Datum/Zeit</th></tr>';
foreach($files as $file){
$content = file_get_contents($file);
$class = preg_match('/^vollständig/im',$content) ? 'complete' : 'incomplete';
$tbl .= "<tr class=\"" . $class . "\"><td>" . $cnt . "</td><td>" . $file . "</td><td>" . date('Y-m-d H:i:s',filemtime($file)) . "</td></tr>";
$cnt++;
}
$tbl .= '</tbody></table>';
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
</head>
<style>
body {font-family:sans-serif; font-size:0.9em;}
.mytable {border-collapse:collapse}
.mytable th {background-color:rgba(238,238,238,1); padding:5px}
.mytable td {
border: 0px;
padding: 5px;
text-align:right;
}
.complete {background-color:rgba(102,255,102,1);}
.incomplete {background-color:rgba(255,102,51,1);}
</style>
<body>
<?php echo $tbl;?>
</body>
</html>
LÖSUNG 08.04.2021, aktualisiert um 16:37 Uhr
Isch schwöre: KEIN never ending ...
SUPER, vielen, vielen Dank!!! Genau so!
Ich hatte ja schon geschlossen, dann kam die Idee mit file_get_contents

Im Ernst: So is fertisch!
Ich bin sprachlos, dankbar und WUNSCHLOS (so kann es nämlich ab morgen laufen, vorletzter Ferientag)
Dieses Forum ist Mega, dank dir warranty!
okidoki
SUPER, vielen, vielen Dank!!! Genau so!
Ich hatte ja schon geschlossen, dann kam die Idee mit file_get_contents
Im Ernst: So is fertisch!
Ich bin sprachlos, dankbar und WUNSCHLOS (so kann es nämlich ab morgen laufen, vorletzter Ferientag)
Dieses Forum ist Mega, dank dir warranty!
okidoki
LÖSUNG 08.04.2021 um 20:12 Uhr
Bei uns gibt's viele gute Leute. In der Regel wird nur in der Regel eigenleistung erwartet und wir geben meist nur Hilfe zu Selbsthilfe.
Vor allem wenn's nach Hausaufgaben aussieht.
So wie ein guter Lehrer 😉
Vor allem wenn's nach Hausaufgaben aussieht.
So wie ein guter Lehrer 😉
LÖSUNG 08.04.2021 um 22:22 Uhr
Gute Lehrer
... und natürlich wiesi200 nicht zu vergessen
!!!
Das ist natürlich manchmal verzwickt, wenn man sich mithilfe des Forums (Selbsthilfe, was ich total gut finde) einerseits eine Lösung erarbeitet hat und dann ein neues Problem auftaucht, das man gar nicht erwartet hätte ...
Ich bin z.B. gerade dabei den Code umzumodellieren, weil ich bei einem funktionierenden auch richtig Spaß dran haben kann! Die Frustration anfänglich ist, weil ich (vielleicht auch andere) gar nicht wissen, wie sie einsteigen sollen.
Insofern hat mir eine fertige Lösung noch nie etwas gebracht, sondern die Selbsthilfe ist ein großes Geschenk dieses Forums!
Das ist natürlich manchmal verzwickt, wenn man sich mithilfe des Forums (Selbsthilfe, was ich total gut finde) einerseits eine Lösung erarbeitet hat und dann ein neues Problem auftaucht, das man gar nicht erwartet hätte ...
Ich bin z.B. gerade dabei den Code umzumodellieren, weil ich bei einem funktionierenden auch richtig Spaß dran haben kann! Die Frustration anfänglich ist, weil ich (vielleicht auch andere) gar nicht wissen, wie sie einsteigen sollen.
Insofern hat mir eine fertige Lösung noch nie etwas gebracht, sondern die Selbsthilfe ist ein großes Geschenk dieses Forums!
LÖSUNG 10.04.2021 um 11:07 Uhr
Ich weiß, es soll kein never ... werden! Eine Bitte habe dennoch zum ersten Code von warranty, den ich gerne (zusätzlich zum neuen unten) weiter nutzen würde:
Wie lässt sich die Ausgabe als Link anzeigen?
Mein Versuch scheitert leider:
Wie lässt sich die Ausgabe als Link anzeigen?
Mein Versuch scheitert leider:
<?php
$files = glob('123*.php');
asort($files);
$cnt = 1;
foreach($files as $file){
<li><a href= echo "$cnt|$file|" . date('Y-m-d H:i:s',filemtime($file)) . '<br>'; </a></li>
$cnt++;
}
?>
LÖSUNG 10.04.2021, aktualisiert um 11:42 Uhr
Ich weiß, es soll kein never ... werden!
Hat schon angefangen ...Autsch ...
echo "<li><a href=\"$file\">$cnt|$file|" . date('Y-m-d H:i:s',filemtime($file)) . "</a></li>";
thread notification for my side = off
w.
LÖSUNG 10.04.2021 um 11:53 Uhr
Jetzt bist DU doch der Beste!
Ich danke dir von Herzen -
Thread - closed -
Ich danke dir von Herzen -
Thread - closed -