Autor | Zpráva | ||
---|---|---|---|
Vivan Profil * |
#1 · Zasláno: 14. 6. 2008, 09:20:16
Zdravím Vás tu zas!
Zháňam mazací skript, ktorému stačí nastaviť parametre napr. datum od ktorého zmaže staršie súbori. Neviete o nejakom takom ? Ja som hľadal ale zatial nič... |
||
ShiraNai7 Profil |
#2 · Zasláno: 14. 6. 2008, 11:00:40
Staci si nechat vypsat obsah adresare, cas u jednotlivych souboru zjistit funkci filemtime() a pokud je rozdil aktualniho a nacteneho casu veci nez nejaka hodnota, soubor smazat. Tohle by mohlo fungovat, ale netestoval jsem to.
//nastaveni $max_stari=604800; //maximalni stari souboru (v sekundach) $adresar='adresar/'; //i s lomitkem na konci! //zpracovani $handle=opendir($adresar); while($polozka=readdir($handle)){ if(time()-filemtime($adresar.$polozka)>=$max_stari){unlink($adresar.$polozka);} } |
||
Vivan Profil * |
#3 · Zasláno: 14. 6. 2008, 21:44:04
Dakujem za odpoved, už to funguje.
Ešte sa spýtam: Ako by šlo zariadiť aby sa zmazal len úplne najstarší súbor ? |
||
Alphard Profil |
#4 · Zasláno: 14. 6. 2008, 23:23:24
pomocí funkce filemtime() ho najdeš a smažeš, je to velmi podobné předchozímu
|
||
ShiraNai7 Profil |
#5 · Zasláno: 14. 6. 2008, 23:40:52
Vivan
Nejak takto (netestoval jsem to): //nastaveni $adresar='adresar/'; //i s lomitkem na konci! //zpracovani $handle=opendir($adresar); $nejstarsi_cas=0; $nejstarsi_soubor=null; while($polozka=readdir($handle)){ $cas=filemtime($adresar.$polozka); if($cas>=$nejstarsi_cas){$nejstarsi_soubor=$polozka; $nejstarsi_cas=$cas;} } if($nejstarsi_soubor!==null){unlink($adresar.$nejstarsi_soubor);} |
||
Alphard Profil |
#6 · Zasláno: 14. 6. 2008, 23:45:17 · Upravil/a: Alphard
if($cas>=$nejstarsi_cas)
nemělo by to být obráceně? takhle to bude imho mazat nejnovější // potom ještě upravit $nejstarsi_cas=time(); |
||
ShiraNai7 Profil |
#7 · Zasláno: 16. 6. 2008, 09:53:44 · Upravil/a: ShiraNai7
Alphard
jo máš pravdu, v té rychlosti jsem to přehlídl potom ještě upravit $nejstarsi_cas=time(); ~ proč? to je nějaké divné |
||
YoSarin Profil |
#8 · Zasláno: 16. 6. 2008, 11:50:46
ShiraNai7
potom ještě upravit $nejstarsi_cas=time(); ~ proč? to je nějaké divné Protože čas z filemtime bude těžko <= 0 :) |
||
ShiraNai7 Profil |
#9 · Zasláno: 16. 6. 2008, 19:28:21
YoSarin
To je blblost, o to vůbec nejde. Jen ukádám čas načtený fcí filemtime() do proměnné $nejstarsi_cas, protoze byl vyhodnocen jako starší než minule nalezený nejstarší. V dalším kroku se bude načtený porovnávat s ním.. atd |
||
YoSarin Profil |
#10 · Zasláno: 16. 6. 2008, 23:40:01
ShiraNai7
myslím že se mýlíš - pokud do proměnné $nejstarsi_cas uložíš na začátku hodnotu 0, a pak v cyklu porovnáváš: if ($cas <= $nejstarsi_cas) { $nejstarsi_soubor=$polozka; $nejstarsi_cas=$cas; } Jo, ale teď kokám, že možná mluvíme každé o něčem jiném - já (a nejspíš i Alphard) mluvíme o prvotní deklaraci proměnné $nejstarsi_cas, ne o té změně co poté probíhá v tom cyklu... :) |
||
Časová prodleva: 16 let
|
0