Mam kamerę , która wrzuca zdjęcia na serwer FTP. Muszę co jakiś czas te zdjęcia wykasować i robię to w CRON.
Zdjęć jest kilka mln i żeby nie zajechać serwera i nie czytać od początku za każdym razem wywołania pętli while chcę czytać pliki od końca daty modyfikacji według daty systemowej.
Jak to zrobić ?
Funkcja readdir czyta według uporządkowania w systemie. A ja mam pliki o takich nazwach i są one troszkę pomieszane.
001E1A010429(przed_firma)_1_20110509231313_328277.jpg 001E1A010429(przed_firma)_1_20110509221913_326040.jpg 001E1A010429(przed_firma)_1_20110509103212_298944.jpg 001E1A010429(przed_firma)_1_20110511102719_387392.jpg 001E1A010429(przed_firma)_1_20110512151125_432401.jpg 001E1A010429(przed_firma)_1_20110509125344_304879.jpg 001E1A010429(przed_firma)_1_20110509025940_283996.jpg 001E1A010429(przed_firma)_1_20110510172900_367864.jpg 001E1A010429(przed_firma)_1_20110509144611_309867.jpg 001E1A010429(przed_firma)_1_20110509232745_328890.jpg 001E1A010429(przed_firma)_1_20110510040653_340492.jpg 001E1A010429(przed_firma)_1_20110510013152_334043.jpg 001E1A010429(przed_firma)_1_20110509022951_282705.jpg 001E1A010429(przed_firma)_1_20110510083908_348037.jpg 001E1A010429(przed_firma)_1_20110512101557_421408.jpg 001E1A010429(przed_firma)_1_20110510062142_343701.jpg 001E1A010429(przed_firma)_1_20110510003643_331754.jpg 001E1A010429(przed_firma)_1_20110510015715_335100.jpg 001E1A010429(przed_firma)_1_20110511233822_411043.jpg
Byłoby fajnie gdybym mógł odczytać pliki według najstarszego elementu lub np. jeśli data modyfikacji wynosi ileś tam .
Teraz mam to tak odczytywane i kasowane :
<? $data_o = $data - 3600 * 24 * 30 ; // data z ostaniach 30 dni //echo "test".$data.'<br>'; $katalog_sciezka = "/home/domena/domains/domena/.pl/public_html/kamera_nr15/"; $licz = 0; { if(($file_name!=".")&&($file_name!="..")) { $data_file = $data_file_y.'-'.$data_file_m.'-'.$data_file_d.' 00:00:00'; if ($data_o >= $data_file2 ){ //echo "kasujemy<br>"; } // echo $data_file.'<br>'; //echo $data_file2.'<br>'; } $licz++; if($licz >= 50000) { break; } } } ?>