Autor Zpráva
Petr Ká
Profil
Ahoj,

nevidí někdo chybku, proč mi script vždy smaže všechny soubory v adresáři, když datum souboru (podle FTP) je správně a limit mám na 7 dní???

Pozn.: Jedná se o mazání souborů v adresáři starších jak 7 dní (zálohy databáze)

if ($handle = opendir($base."/files/mysql_zalohy")) {

    while (false !== ($file = readdir($handle))) {
        $filelastmodified = filemtime($file);

        if((time() - $filelastmodified) > 7*60*60*24)
        {
            if (unlink($base."/files/mysql_zalohy/".$file)){
                $dl++;
            }
        }

    }

    closedir($handle);
}
Chro
Profil
Filemtime bude obsahovat třeba false, které se převede v podmínce na nulu. S filectime to funguje?
Petr Ká
Profil
Chro:
Díky za odpoved, ale filectime() také bez úspěchu...

soubory vytvářím klasicky pomocí fopen, fwrite, fclose...
Chro
Profil
A co vrací funkce filemtime? Zkus si to vypsat pomocí funkce var_dump($promenna). Provozuješ PHP na Windows nebo Linuxu? Btw. modernější zápis do souboru je funkcí file_put_contents.
Petr Ká
Profil
Chro:
Btw. modernější zápis do souboru je funkcí file_put_contents.
Vím vím, ale to už je obsažení ve třídě pro dump databáze (jedná se o zazipované dumpy)

Zkus si to vypsat pomocí funkce var_dump($promenna).
nazev: ".." : int(1394610705) - 15.03.2014 20:02:01
nazev: "srfg" : bool(false) - 15.03.2014 20:02:01
nazev: "." : int(1394910120) - 15.03.2014 20:02:01

EDIT:
oprava, do date jsem nevlozil filectime :)

nazev: ".." : int(1394610705) - 12.03.2014 08:51:45
nazev: "srfg" : bool(false) - 01.01.1970 01:00:00
nazev: "." : int(1394910179) - 15.03.2014 20:02:59



Chro:
Provozuješ PHP na Windows nebo Linuxu?
VPS na tučnákovi
Chro
Profil
. a .. jsou složky aktuální/předchozí, ty nelze smazat. U souboru není čas dostupný, funkce vrací false a to se v podmínce převede na nulu, tudíž se podmínka splní vždy. Proč tomu tak je, nevím.
Petr Ká
Profil
Tak jsem se dočetl, že filectime a filemtime vrací false, pokud soubor nenajde... RESPEKTIVE: řešení je v absolutní cestě...

Díky za váš čas
juriad
Profil
Petr Ká:
Nechybí náhodou na 4. řádku celá cesta k souboru?
V takovém případě soubor vůbec neexistuje, a proto je čas změny false.
Jop.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: