Datum bestimmen
peter mueller
- php
Hallo
Ich habe z.B. folgende Ordnerstruktur:
Home
Dateien
Text
Mit dem Befehl filemtime($dir."/Home/") erhalte ich nun das Datum der zuletzt geänderten Datei im Ordner Home.
Wie kann ich erreichen, dass ich das Datum der zuletzt geänderten Datei im gesamten Ordner Home (also inklusive die Unterordner Dateien und Text) erhalte?
Besten Dank
Peter
Hallo
Hallo
Ich habe z.B. folgende Ordnerstruktur:
Home
Dateien
TextMit dem Befehl filemtime($dir."/Home/") erhalte ich nun das Datum der zuletzt geänderten Datei im Ordner Home.
Wie kann ich erreichen, dass ich das Datum der zuletzt geänderten Datei im gesamten Ordner Home (also inklusive die Unterordner Dateien und Text) erhalte?
Versuche es mal mit filemtime(); in dem Ortner Home zu starten. Wenn das nicht geht dann filemtime($dir."/Home/","Datei","text");
Hoffentlich hilft es dir,
mfg
Besten Dank
Peter
Versuche es mal mit filemtime(); in dem Ortner Home zu starten.
wie kann ich filemtime() im Ordner Home starten. Wo kann ich den Ordner setzen?
Halo Peter,
http://de2.php.net/filemtime und dort gleich das zweite Beispiel dürfte Deine Frage beantworten.
Gruss, Thoralf
Ich habe soeben dieses Beispiel getestet. Leider funktionierts nur für den ersten Unterordner. Alle weiteren Unterordner werden nicht berücksichtigt. Weiss vielleicht jemand, was geändert werden muss?
Gruss
Peter
Hallo,
Ich habe soeben dieses Beispiel getestet. Leider funktionierts nur für den ersten Unterordner. Alle weiteren Unterordner werden nicht berücksichtigt. Weiss vielleicht jemand, was geändert werden muss?
Schaut auf den ersten Blick okay aus. Was geht nicht? Fehlermeldung?
Ansonsten musst Du in jeden Durchlauf ein echo einbauen, was Dir die relevanten Daten mal ausgibt. Und dann schauen (oder posten) wo er hängt. Ggf. live mal aufbauen und hier verlinken.
Gruss, Thoralf
Ansonsten musst Du in jeden Durchlauf ein echo einbauen, was Dir die relevanten Daten mal ausgibt. Und dann schauen (oder posten) wo er hängt. Ggf. live mal aufbauen und hier verlinken.
Ich habe den "Fehler" gefunden. Es werden nur die zuletzt geänderten Dateien und nicht auch die zuletzt geänderten Ordner angezeigt. Was muss ich ändern, damit dies auch bei den Ordner richtig angezeigt wird?
Gruss
Peter
Hab's herausgefunden. Das Skript muss folgendermassen lauten:
Gruss
Peter
function mostRecentModifiedFileTime($dirName,$doRecursive) {
$d = dir($dirName);
$lastModified = 0;
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (!is_dir($dirName."/".$entry)) {
$currentModified = filemtime($dirName."/".$entry);
} else if ($doRecursive && is_dir($dirName."/".$entry)) {
$currentModified = filemtime($dirName."/".$entry);
if ($currentModified > $lastModified){
$lastModified = $currentModified;
}
$currentModified = mostRecentModifiedFileTime($dirName."/".$entry,true);
}
if ($currentModified > $lastModified){
$lastModified = $currentModified;
}
}
}
$d->close();
return $lastModified;
}
Hallo,
Nu wollt ich schon maulen, dass wir hier SELFhtml sind. ;) Und dann postest Du das fertig Script. Super. :)
$currentModified = filemtime($dirName."/".$entry);
Drei Hinweise: PHP ist mit Dateizugriffen naturgemäss etwas langsam, also hab das Script im Auge, ggf. mal bei einem grossen Verzeichns die Zeit nehmen. Dann kannst Du einen leichten Performance-Gewinn rausholen, wenn Du statt "/" besser '/' nimmst. Strings in " werden geparst, wenn Du das nicht brauchst, sparst Du Dir mit ' die Parsingzeit. Macht im 'normalen' Betrieb nicht viel aus, aber bei einem rekursiven Script können das einige ms werden. Und zum Schluss noch der Verweis auf http://de2.php.net/manual/de/function.clearstatcache.php, das im Hinterkopf behalten, denn "Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert." Betrifft Dich hier nicht, aber ist eine beliebte 'Ich such mich doof'-Quelle. ;)
Gruss, Thoralf
Besten Dank für die Tipps!
Gruss
Peter