Klasör fonksiyonu.

alicilinAli Fırat Güler

Bir projemde kullanmak için yazdığım fonksiyonu sizler ile paylaşayım dedim.

Normalde php ile klasör oluşturmak için mkdir(dizin_adi/); şeklinde mkdir() fonksiyonundan yararlanırız. Fakat bu fonksiyon ile iç içe ard arda klasör açamazsınız yani;

eğer ust adında bir klasör yoksa mkdir('ust/alt/'); diye bir kullanımda ilk önce ust adında klasör ardından alt adında klasör açmaz. hata verir.

Bu fonksiyon ile ard arda ust ve alt dizin oluşturabilirsiniz.

Fonksiyon;


function makedir($dizinler){

$dizinler = explode('/',$dizinler);

$dizin_sayi = count($dizinler);

for($x = 0 ; $x < $dizin_sayi; $x++){

    for($i = 0; $i <= $x; $i++){

       ($i !== 0)? $olustur .= '/'.$dizinler[$i] : $olustur .= $dizinler[$i];

        }

      if(!is_dir($olustur)) mkdir($olustur);

     $olustur ='';

   }

return 1;  

}

Kullanımı;

makedir('ust/alt/daha-alt');

Bu kullanım sonucunda ust klasörü oluşturulur, ust klasörünün içinde alt klasörü onunda içinde daha-alt klasörü oluşturulmuş olur.

Kolay gelsin...

2012-09-01 16:07:01 Edit:2012-09-01 17:55:16

Php

Paylaşım için Teşekkürler Ali. recursive fonksiyon için güzel bir örnek.

Her programcı birgün Php yi tadacaktır
2012-09-03 09:53:29

alicilinAli Fırat Güler
Yazan:drekon

Paylaşım için Teşekkürler Ali. recursive fonksiyon için güzel bir örnek.

Hocam küstahlık olarak algılamayın. Affınıza sığınarak söylüyorum ama sanırım yine dalgınsınız diliniz sürştü :)

iterative fonksiyona güzel bir örnek dicektiniz sanırım smiley

2012-09-03 11:41:41

Php

Yok yahu unutkanlıktan değil. Benzer bir işi yapmak için ben recursive ile fonksiyon yazmıştım. fonksiyona bakmadan benim yaptığımın aynısı zannettim. Adım çıktı dokuza inmez sekize.

Recursive olan başka bir "dizin silici" aşağıda, belki birilerinin işine yarar: Klasörün içi dolu olsa dahi herşeyi siler.

function dizinsil($d ="." )
    {
        if(!is_dir($d)){ return;}
         $h = @opendir($d);
         if($h==0)return 0;
         while ($f=readdir($h)){
              if ( $f!= ".." && $f!=".")
            {
                    $nd=$d."/".$f;
                    if(is_dir($nd)){
                         dizinsil($nd);
                    }else{
                    unlink($nd);
                }
              }
         }
         closedir($h);
         return $sf ;
    }

Her programcı birgün Php yi tadacaktır
2012-09-03 22:10:39

phpkodlari.com © 2009 Herkes Php öğrenecek
Eglence ve Oyun: Gamikro