Autor Zpráva
Luky
Profil
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 :)
Script vyhazuje chybu: date() expects parameter 2 to be long, string given in... (řádek 7)
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
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.

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:

0