• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

filemtime()-Error

deep.coding

Neues Mitglied
Guten Abend,

nachdem Ihr mich mit der Funktion filemtime() schon auf die richtige Fährte gelockt habt, muss ich leider doch nochmal Eure Hilfe in Anspruch nehmen:

Es ist schon spät und ich bin müde, aber ich verstehe einfach nicht, warum dieses Script nicht tut, was es soll:

Im Verzeichnis "stations" befinden sich 9 Dateien.
Eine davon, ist in den letzten 4 Minuten überschrieben worden.
Das Script sollte nun eigentlich PRO "Datei-die vor-unter-4-Minuten-verändert-wurde" EINMAL den Eintrag "<tr><td>b</td></tr>" schreiben - die anderen 8 Dateien sollen in diesem Fall vom Script getrost ignoriert werden.

Das scheint auch alles zu funktionieren, nur bekomme ich als Anzeige 9 Mal diesen Error:
PHP:
Warning:  filemtime() [function.filemtime]: stat failed for not_online.jpg in F:\xampp\htdocs\vattv\v.0.3.0\online_table2.php on line 12
Dürfte dieser Error nicht - wenn er schon auftritt - höchstens 1x auftreten? (Eben für das eine, in den letzten 4 Minuten überschriebene File)

Hier der Code:
PHP:
<?php


echo "<table border=\"1\" width=\"500\">";

if ($handle = opendir('stations')) {

    while(false !== ($file = readdir($handle))) {
    
        if ($file != "." && $file != "..") {
   
            $unix1 = filemtime($file);
            $unix2 = time();
            $delta = $unix2 - $unix1;

                if (date(i, $delta) < '4') {

                    echo "<tr>";
                    echo "<td>b</td>";
                    echo "</tr>";

                }

        }

    }

closedir($handle);

}

echo "</table>";


?>
Gruß
 
na zum zeitpunkt wo du filemtime benutzt hast du ja noch nicht überprüft ob diese datei innerhalb der letzten 4 minuten geändert wurde, du lässt ja von allen dateien den zeitpunkt der letzten änderung bestimmen, deshalb auch 4 mal die fehlermeldung

filemtime wird wohl noch der pfad zu $file fehlen.. versuch es mal mit filemtime('stations/' . $file)

bei date(i) fehlen doch noch die anführungszeichen ?!?! date("i")
 
Boar danke erstmal für den ersten Tipp - manchmal hängt man stundenlang davor und sieht es einfach.

Was die anderen beiden Tipps angeht: date(i) funktioniert so.

mit filemtime('stations') bekam ich alle Files ausgelesen. Werde es jetzt nochmal mit filemtime('stations/' . $file) probieren und mich gleich melden.

Danke

Schade, leider hat das nichts geholfen.

Hat sonst noch jemand eine Idee?
 
Zuletzt bearbeitet von einem Moderator:
Danke, Asipak4You.
Nach stundenlangem rumprobieren, hab ich es jetzt hinbekommen ;)

Für jemanden, der ähnliche Probleme hat, hier nochmal der funktionierende Code:

PHP:
<?php

if ($handle = opendir('./stations')) {


    while (false !== ($file = readdir($handle))) {



    $unix1 = filemtime('stations/' . $file);
    $unix2 = time();
    $delta = $unix2 - $unix1;


    if (date(i, $delta) < '4') {
     
        if ($file != "." && $file != ".." && $file != "Thumbs.db") {

            echo "$file\n";


            echo "$delta<br />b";

        }
    }

    }
closedir($handle);
}


?>
 
Zuletzt bearbeitet:
diese if-verzweigung

PHP:
if ($file != "." && $file != ".." && $file != "Thumbs.db") {

würde ich nach der while-schleife einbauen, sonst überprüfst du auch '.' und '..' auf ihr änderungsdatum und die willst du doch sowieso nicht ausgeben ;)
 
diese zeile

PHP:
if (date(i, $delta) < '4') {

sollte in

PHP:
if (($delta / 60) < 4) {

geändert werden sonst bekommst du falsche ergebnisse ;)
 

Neueste Beiträge

Zurück
Oben