İçeriğe geç

PHP ile Dizinleri Silme Fonksiyonu

Merhaba arkadaşlar, bu makalemde sizlere ihtiyaç gereği yazdığım PHP’de dizinleri silme fonksiyonumu sizlerle paylaşacağım. Bu fonksiyonu yazmamın nedini sitemde bir alanda içi dolu bir klsörü silerken hata almam oldu. Bildiğiniz gibi PHP’de rmdir() fonksiyonu ile dosyaları silebiliyoruz. Ama sildiğimiz dosyanın içide boş olmak zorunda. Eğer dolu bir dizini bu şekilde silmeye kalkışırsak PHP hata gösterecektir.

Sözü uzatmadan fonksiyonu paylaşayım sizlerle : 
 


function deelete($filename){
	if(file_exists($filename)){
		   $files = scandir($filename);
		   $not = array(".","..");
		   /*$not değişkeni ile dikkate alınmıyacak dosyaları seçebilirsiniz bu iki dosyada gizli olduğu için bunları çıkarmadan işlem yaptığımızda hata veriyor..*/
		   for($i = 0; $i < count($not);$i++){
		   		$sea = array_search($not[$i],$files);
		   		unset($files[$sea]);
		   }
		   foreach ($files as $row) {
		   	 if(!is_dir($filename."/".$row)){
		   	 	unlink($filename."/".$row);
		   	 }else{
		   	 	deelete($filename."/".$row);
		   	 	rmdir($filename."/".$row);
		   	 }
		   }
		   rmdir($filename);
	}else{
		echo 'Dosya veya Klasör Bulunamadı!';
	}

}

Fonksiyonumuz budur arkadaşlar. Konuyu bitirmeden şunuda belirtmek istiyorum php.net ‘inde bu konuda bir fonksiyonu mevcut ben kendim farklı bir şekilde yapmak istedim php.net’in yaptığı fonksiyonda aşağıdaki gibi : 
 


<!?php 
public static function delTree($dir) { 
   $files = array_diff(scandir($dir), array('.','..')); 
    foreach ($files as $file) { 
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file"); 
    } 
    return rmdir($dir); 
  } 
?>

Herkese kolay gelsin.. 

Kategori:PHP

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir