Merhaba arkadaşlar,
ftp de yer alan bir klasörün otomotik olarak temizlenmesini istiyorum. örneğin resimler adında bir klasör oluşturdum ve bu resimler klasöründe bulunan dosyaların hafta bir temizlenmesini istiyorum. (.htacces ve index.html hariç)
Bunu bir php ile yapabilir miyim?
php ile klasör boşaltma
23
●5.258
- 20-06-2008, 02:10:13klasördeki dosyaların(.htaccess ve index.html hariç) silinmesini sağlayan script, çalıştırıldığı an silme işini gerçekleştirir. bu scripte kullanıcıların kazara girmemesi için karışık bir isim vererek cronjob ile haftada bir çalıştırılmasını sağlayabilirsin.
<?php $anadizin = "resimler"; if ($kaynak = opendir($anadizin)) { while (false !== ($file = readdir($kaynak))) { if ($file != "." AND $file != ".." AND $file != "index.html" AND file !=".htaccess") { unlink($anadizin."/".$file); } } } ?> - 20-06-2008, 06:21:20Bir projemde böyle bir kod yazmam gerekecekti işte bu iyi oldu. Kafa yormam gerekmeyecek
. Öncelikle bunun için teşekkürler.
Ben de ekstra konu açmadan bu konu altında sorayım. Yukarıdaki kodu del.php diye kaydettik varsayarsak hangi komutla cronjob ayarlayabilirim. 3 günde bir belirttiğim dizindeki dosyaları temizleyecek. Panel plesk ve cpanel. İlk kez cronjob kullanacağım için bilgim yok.
Düzeltme:
Arkadaşlar yukarıdaki kodun (Bartuc'un kodu) şu haliyle olanını nasıl yapabiliriz?
GECICI_DIZIN klasörü var ve bu klasör içinde 5 farklı klasör ve index.html dosyası var.
Bu 5 farklı klasörün içinde de .jpg resimler var ve index.html mevcut her klasörün içinde. Şimdi istediğim kod şöyle olmalı.
Çalıştığı anda GECICI_DIZIN klasörünün içindeki 5 klasörün içindekileri (ki bunlar .jpg dosyalar) silmeli. Ancak bu 5 klasör içinde bulunan index.html dosyasını silmemeli. Eğer anlayıpta yapabilen varsa paylaşırsa memnun olurum yoksa biraz kafa patlatmak gerekecek
- 20-06-2008, 13:20:51Ya fazla bişi yapmana gerek yok. Bartucun kodunu accık geliştireceksin. Misal
<?php $dizinler = array("./", "resim1", "resim2", "resim3", "resim4", "resim5"); for($a=0;$a=<count($dizinler);$a++){ if ($kaynak = opendir($anadizin)) { while (false !== ($file = readdir($kaynak))) { if ($file != "." && $file != ".." && substr($file ,-4) == ".jpg") { unlink($anadizin."/".$file); } } } } ?>Böle bişi işini görür sanırım. Bu verdiğim kod, çalıştırdığın dizinde ve resim1, resim2 .... klasörlerinin içindeki tüm .jpg uzantılı dosyaları siler. Anladığım kadarıyla istediğin de zaten buydu
- 12-06-2009, 01:05:46konu eski olsa bile sorun benzer, yeni konuya gerek yok.

benim istediğim şöyle.
bu php dosyaso çalıştırıldığı zaman
belirlediğim klasör içindeki tüm dosyalar için, uzantı önemli değil.
dosyanın oluşturulma zamanından 6 saat geçmiş ise o dosyayı silecek. server saatine göre karşılaştırma yapacak.
böyle bir php dosyası gerek.
ve ben bunu cron ile her saat başı çalıştıracağım.
nasıl olabilir? - 12-06-2009, 01:32:06Üyeliği durdurulduPHP: filectime - Manual
dosyanın oluşturulma zamanını bu fonksiyon ile alabilirsiniz
zaten time() degeri olarak veridgi için
6 saat öncesi
time() - 60 * 60 * 6 olur