Autor | Zpráva | ||
---|---|---|---|
Luky Profil |
#1 · Zasláno: 17. 5. 2013, 13:28:11 · Upravil/a: Luky
Zdravím,
potřeboval bych zjistit kdy byl soubor naposledy editován. Pokud je to déle jak hodina, tak ho upravit (dělám script pro úpravy několika tisíc fotek v adresáři a chci zajistit aby při selhání scriptu neupravovali fotky, které již byly editovány). Vytvořil jsem si malou ukázku kde porovnávám poslední modifikaci s aktuálním časem. Je tam však chyba s aktuálním časem: $time = time() - 60 * 60; // Výpis souborů z adresáře $last = filemtime($file); $last < $time ? $cas = "TRUE" : $cas = "FALSE"; $last = date("F d Y H:i:s.", $last); $time = date("F d Y H:i:s.", $time); echo "$file - $cas ($last < $time)\n"; // Znaménka si nevšímejte :) neukazuje ji ale u každého vypisovaného souboru, což je divné když v proměnné $time je pořád stejná hodnota (jde o každý druhý soubor). Děkuji za každou radu ;) Vyřešeno. Moc se omlouvám se za zbytečný dotaz. Přiřazování aktuálního času musí být v cyklu (výpisu souborů z adresáře) Zjistil jsem však jiný problém. Funkce filemtime (ani fileatime a filectime) neřeší přejmenování fotky. Je na to nějaká jiná metoda, jak zjistit kdy byl naposledy soubor přejmenován? |
||
juriad Profil |
#2 · Zasláno: 17. 5. 2013, 14:40:56
Pokud se bavíme o linuxu, tak ne.
Informace o souboru (kromě jeho jména) se udržují v jeho inodu. Jméno souboru je uložené v adresáři, do kterého patří. Můžeš zjistit, kdy byl adresář naposledy změněn, tedy kdy naposledy nějaký soubor v něm přibyl, ubyl nebo byl přejmenován. |
||
Časová prodleva: 11 let
|
0