Hallo Leute,
ich bastel gerade an einem kleinen Datenbank-Proggi und hab dort ein Problem mit der "is_dir"-Funktion !
Es ist so:
Ich habe eine Funktion geschrieben die mir aus bestimmten Ordnern nur die Dateien herauszieht, um dann jeweils das Datum der letzen Datei-Änderung abzufragen und den größten Wert abzuspeichern, um mir wiederrum damit das Datum der letzten Aktualisierung übergeben zu können.
Die Unterverzeichnisse will ich natürlich nicht prüfen, aber ein Verzeichniss (von mehreren) erkennt "is_dir" nicht als solches !!
Die Verzeichnissstruktur ist wie folgt:
/
/tbox
/tbox/data
/tbox/img
/tbox/incs
Die ausführende Datei liegt im "tbox"-Ordner und soll seinen eigenen, den Stammordner und den "inc" ordner überprüfen !
Hier nun mein Code:
$scriptfolders = array("./", "incs/", "../");
function GetLatestScriptEdit() {
global $scriptfolders;
$act = 0;
/* Anzahl der zu prüfenden Ordner */
$arrcount = count($scriptfolders);
for ($i=0; $i<$arrcount; $i++) {
$actdir = $scriptfolders[$i];
$dir = opendir($actdir);
if (!$dir) {
log2file("'GetLatestScriptEdit' konnte Verzeichnis '$actdir' nicht öffnen !");
return false;
}
while ($file = readdir($dir)) {
if (!is_dir($file)) { /* Auf Verzeichnisse prüfen (diese nicht mit einbeziehen) */
switch ($file) {
case ".":
break;
case "..":
break;
default:
$timearray[$act] = filemtime($scriptfolders[$i] . $file);
$act++;
log2file("'GetLatestScriptEdit' --> " . $scriptfolders[$i] . $file . " !"); /* ZU TESTZWECKEN */
}
}
}
closedir($dir);
}
/* Absteigend sortieren -> $timearray[0] enthält den größten(=ältesten) Wert */
rsort($timearray);
$latestedit = date("d.m.y H:i",$timearray[0]);
return $latestedit;
}
Mein Logfile (von "log2file()") verrät mir das die "filemtime()"
für "../tbox" GANZ ZUM SCHLUSS auch berechnet wird (trotz "if (!is_dir($file))") !!
Bitte helft mir, ich blicks einfach nicht, da sonstige Verzeichnisse (data, img) ja auch nicht geprüft werden !
MfG,
w00zla