neueste datei auslesen
thomas aus sachsen
- php
0 Max Smily0 thomas
0 Christian Seiler0 thomas
hallo zusammen,
ich habe eine kleines skript geschrieben, welches aus eindem ordner die neueste datei auslesen soll. es sieht folgendermassen aus:
<?php
$lastmodified=0; // hier wird die letzte aenderung gespeichert
$date=0;
$folder=opendir('content'); // zu durchsuchender ordner
$pattern=".|.."; // soll herausgefiltertwerden
while($data=readdir($folder)){ // solange noch daten im ordner sind...
if(!ereg($data,$pattern)){ // und nicht . oder .. sind
$date=filemtime($data); // date ist letzte aenderung der akt.datei
global $lastmodified;
if($date>$lastmodified){
$lastmodified=$date;
$site=$data;
}
}
}
echo($site);
?>
das skript geht die dateien zwar durch, jedoch reagiert es überhaupt nicht auf "filemtime()". dies wird anscheinend ausgelassen.
sieht vielleicht jemand was ich falsch mache? ich komme nämlcih wirklich nicht mehr weiter...
gruss thomas
Hallo Thomas,
du hast einen Dreher im ereg-Befehl
es muss heißen:
if(!ereg($pattern,$data))
Bei dir ist immer diese If-Klausel immer false, somit wird auch nie nach einem Dateidatum gesucht...
Max
hallo maxda,
danke für die antwort. ist mir nicht aufgefallen.
hab das nun verbessert, allerdings hat es nichts geholfen.
anscheinend wird die while-schleife nur einmal durchgelaufen.
es wird mir immer nur die erste datei ausgegeben und danach wird abgebrochen.
gruss, thomas
Hallo Thomas,
while($data=readdir($folder)){ // solange noch daten im ordner sind...
$date=filemtime($data); // date ist letzte aenderung der akt.datei
Stimmt nicht ganz. Du liest das Verzeichnis $folder aus und erhältst einen Datei_namen_ innerhalb von $folder. Um auf diese Datei zuzugreifen, musst Du aber den Ort der Datei und Deinen eigenen Ort (Du befindest Dich ein Verzeichnis weiter oben) berücksichtigen:
$date = filemtime ($folder . '/' . $data);
Dann sollte es klappen.
Ach ja:
http://de3.php.net/de/chdir
http://de3.php.net/de/getcwd
Viele Grüße,
Christian
hallo christian,
vielen dank für deine antwort.
hat mir sehr geholfen. es lag genau an diesem fehler.
schönes wochenende noch
gruss, thomas