Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Da ich den zuletzt gedrücken Button anders haben wollte, damit es Übersichtlich ist, habe ich ein wenig rumprobiert. Aber irgendwie ist das nicht das gelbe vom Ei.
Wenn du doppelte Anführunszeichen " benutzt um Strings einzugrenzen, kannst du diese nicht gleichzeitig auch im String benutzen (bspw. bei scr, width, height).
Entweder benutzt du einfache Anführungszeichen ' um den String einzugrenzen und doppelte " innerhalb, oder du benutzt immer doppelte Anführungszeichen ", musst diese dann aber im String escapen \".
Bei einfachen Anführungszeichen ' musst du Variablen im String außerdem abgrenzen, bei doppelten nicht.
Wobei sich mir eigentlich die Frage stellt, was nicht das Gelbe vom Ei ist? Fehlermeldung (vermutlich) oder gefällt dir sonst etwas an dieser Vorgehensweise nicht?
Respekt... Da braucht man bestimmt viel Zeit/Lust und Ausdauer
Habe mir überlegt, wie ich aus mehreren Datei die letzte Änderung bekomme.
PHP:
<?PHP
$datei = '1.txt';
$zeit = filemtime ( $datei );
// dann nach größe sortieren und den größten Wert umwandeln
echo 'Letzte Änderung der Datei: ' . $zeit . ';
Nur muss ich dann alle Datein hinzufügen. Gibt es da nicht einen einfacheren und bessernen Weg? Das man vielleicht nur die Ordner aufrufen muss?
$array = array("Apfel", "Birne", "Kirsche");
// durchläuft das Array $array und gibt in jedem Durchgang echo $obst aus
foreach($array as $obst)
{
echo $obst;
}
Du machst in der Schleife halt dein filmtime() oder was auch immer.
Das Array mit Apfel, Birne, Kirsche war natürlich nur ein Beispiel zur Veranschaulichung der foreach-Schleife
Das Array mit den Dateinamen bekommst du über oben genannte scandir-Funktion. Und statt dem echo $obst in der Schleife machst du wie gesagt dein filemtime(...)
Wenn du scandir nutzt, landen die Dateinamen automatisch in einem Array; in deinem Fall $files. Das entspricht meinem oben manuell erzeugten Array $array mit Apfel, Birne, Kirsche.
Ich hatte: $array = array("Apfel","Kirsche","Birne");
Du hast quasi : $file = array("datei1.abc","datei2.xyz", ...); (durch die Funktion scandir erzeugt)
Also setzt du das Array $file in die foreach-Schleife, welche das Array dann Element für Element durchläuft:
Wie du am ersten Beispielen der scandir-Funktion siehst, enthält dein Array aber auch zwei Eintrage "." und "..".
Die kannst du bspw. in der foreach-Schleife auslassen, wenn du mit einer if-Abfrage prüfst ob das aktuelle Element "." oder ".." ist:
PHP:
foreach($files as $file)
{
// nur wenn $file nicht "." und $file nicht ".."
if($file != "." AND $file != "..")
{
$zeit = filemtime($file);
echo 'Letzte Änderung der Datei: ' . $zeit . '<br>';
}
}
Lass die if-Anweisung erstmal weg, und schau, was dann passiert.
Entweder kommt bei den Punkten ein Fehler oder ansonsten zumindest irgendeine Ausgabe.
Geordnet sind die Zahlen nicht, dazu müsste man zuerst in einer foreach-Schleife die Zeiten der Dateien auslesen (quasi wie du's aktuell vorhast), aber dann nicht mit echo ausgeben, sondern in einem neuen Array speichern.
Das neue Array kannst du dann mit arsort der Größe nach absteigend sortieren, und wiederum in einer foreach-Schleife mit echo deine Text ausgeben.
PHP:
$files = scandir(...);
foreach($files as $file)
{
$zeit = filemtime($file); // Zeiten ermitteln ...
$zeiten[] = $zeit; // ... und in neuem Array speichern
}
arsort($zeiten); // Array absteigend sortieren
foreach($zeiten as $zeit)
{
echo "Letzte Änderung der Datei: " . $zeit . "<br>";
}
Danach nochmal probieren, mit der if-Anweisung die Punkte abzufangen.
Das Problem mit "." und ".." ist leider immer noch da.
Mit Abfrage:
Code:
Letzte Änderung der Datei:
Letzte Änderung der Datei:
Letzte Änderung der Datei:
Letzte Änderung der Datei:
Ohne Abfrage:
Code:
Letzte Änderung der Datei: 1272306289
Letzte Änderung der Datei: 1272135623
Letzte Änderung der Datei:
Letzte Änderung der Datei:
Letzte Änderung der Datei:
Letzte Änderung der Datei:
Nach Größe ist es auf jedenfall schon sortiert. Aber eigentlich ist es doch egal, ob "." und ".." dabei ist, da ich na nur den größten Wert brauche und dann stehen sie ja unten
Wie filter ich nur den ersten Wert aus $zeiten?
Ich denke das die letzte foreach unnötig ist.
PHP:
foreach($zeiten as $zeit)
{
echo "Letzte Änderung der Datei: " . $zeit . "<br>";
}
brauche ja nur den ersten, oder verwechsel ich da gerade was?
D.h. mit if-Anweisung werden die beiden . und .. korrekt nicht ausgegeben, die restlichen vier aber auch nicht. Dann stimmt da evtl. was mit deinem Dateipfad nicht, so dass da gar keine Dateien liegen.
Mach doch in der Schleife nur mal echo $file um zu sehen, ob da überhaupt die Dateinamen auftauchen, die du willst.
Wenn du nur den Maximalwert aus dem Array brauchst, dann mach echo max(array($zeiten)), sortieren brauchst du dann natürlich nichts.