<?php class DerinDizin{ var $dizin; var $dosyalar; function DerinDizin(){ $this->dizin = ''; $this->dosyalar = array(); $this->dizinelemanlar = new elemanlar(); } function dizinAyarla( $dizin ){ $this->dizin = $dizin; $this->dosyalar = array(); $this->dizinelemanlar->sifir(); $this->dizinelemanlar->push( $this->dizin ); } function yukle(){ while( $this->mevcutDizin = $this->dizinelemanlar->pop() ){ $this->mevcutDizindenYukle(); } } function mevcutDizindenYukle(){ if ( $kol = @opendir( $this->mevcutDizin ) ){ while ( false !== ( $dosya = readdir( $kol ) ) ){ if ( $dosya == "." || $dosya == ".." ) continue; $dosyaYolu = $this->mevcutDizin . '/' . $dosya; $dosyatipi = filetype( $dosyaYolu ); if ( $dosyatipi == 'dir' ){ $this->dizinelemanlar->push($dosyaYolu); continue; } $this->dosyalar[]=$dosyaYolu; } closedir($kol); } else{ echo 'Hata : Dizin Açılamıyor "'.$this->mevcutDizin.'"'; } } } class elemanlar{ var $elemanlar; function elemanlar(){ $this->sifir(); } function push( $eleman ){ array_push( $this->elemanlar, $eleman ); } function pop(){ return array_pop( $this->elemanlar ); } function sifir(){ $this->elemanlar = array(); } } $dizinAdi = '..'; $dizin = new DerinDizin(); $dizin->dizinAyarla($dizinAdi); $dizin->yukle(); foreach( $dizin->dosyalar as $n => $kolYolu ){ echo ($n+1)." ".$kolYolu."<br>"; } ?>
Çıktısı
1 ../localweb/index.php 2 ../localweb/test/2.txt 3 ../localweb/test/a/b.php 4 ../databases/tr.txt 5 ../conf/asd.txt 6 ../conf/test.conf 7 ../conf/test2.conf