Autor | Zpráva | ||
---|---|---|---|
Petr Ká Profil |
#1 · Zasláno: 15. 3. 2014, 19:32:04
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 |
#2 · Zasláno: 15. 3. 2014, 19:42:00
Filemtime bude obsahovat třeba false, které se převede v podmínce na nulu. S filectime to funguje?
|
||
Petr Ká Profil |
#3 · Zasláno: 15. 3. 2014, 19:49:22
Chro:
Díky za odpoved, ale filectime() také bez úspěchu... soubory vytvářím klasicky pomocí fopen, fwrite, fclose... |
||
Chro Profil |
#4 · Zasláno: 15. 3. 2014, 19:56:01
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 |
#6 · Zasláno: 15. 3. 2014, 20:11:54
. 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 |
#7 · Zasláno: 15. 3. 2014, 20:15:44
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. |
||
Časová prodleva: 10 let
|
0