PHP’de dosyaları silmek için unlink() fonksiyonu kullanılır. Glob fonksiyonu da belirli koşullara göre dosya aramasını yapar. Örneğin sadece “.png” uzantılı dosyaların yollarını alma işlemini yapabilirsiniz.
Yani aynı kalıpla eşleşen dosyaların yollarını bulma ve eşleştirme görevine sahiptir.
Bu yazımda sizlere PHP ile belirtilen dizindeki belli bir tarihten eski dosyaları silmeyi göstereceğim.
<?php
/*
* Silinecek dosyaların bulunduğu dizin
*/
$dir = "klasor/dosyalar";
/*
* Dizindeki tüm dosyalara işlem uygulanır
*/
foreach (glob($dir."*") as $file) {
/*
* 1 gün = 24 saat = 86400 saniye (bir günden eski tüm dosyaları siler
*/
if(time() - filectime($file) > 86400){
unlink($file);
}
}
Glob fonksiyonu ile belirtilen dizindeki tüm dosyaları seçtik ve foreach döngüsü ile seçilen dosya sayısı kadar işlemi tekrarladık. PHP time() fonksiyonu ile şu anki zamanı aldık ve filectime fonksiyonu ile geçerli dosyanın tarihin aldık. İkisinin farkını alarak dosyanın oluşturulmasının üzerinden ne kadar zaman geçtiğini bulduk. Eğer dosya 86400 saniyeden (24 saat, 1 gün) eski ise dosyayı sildik.
Eğer dizinde bulunan sadece ZIP (veya başka bir uzantı) dosyalarını silmek istiyorsanız
glob($dir."*")
yerine
glob($dir."*.zip")
yazabilirsiniz.