Klasör Oluşturma ve Klasör İçi Görüntüleme

PHP
138 lines
<?php
class Dizin {
var $dizinAdi='';
var $kol_ac='';
var $oku='';
var $mesaj='';
function isimAyarla($dizinAdi){
$this->mesaj="";
$this->dizinAdi=$dizinAdi;
}
function dizinIsmiGetir($path){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
return dirname($this->dizinAdi);
}
}
function dizinOlustur($dizinAdi){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
if (!isset($this->kol_ac)){
$this->mesaj= "Dizini açmanız gerekir (dizinBaglantisiAc kullanın).";
}else{
if (is_dir($dizinAdi)==false){
$this->mesaj=$dizinAdi." dizini oluşturuldu";
return mkdir($dizinAdi);
}else{
$this->mesaj=$dizinAdi." dizini zaten mevcut";
}
}
}
}
function dizinSil($dizinAdi){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
if (!isset($this->kol_ac)){
$this->mesaj= "Dizini açmanız gerekir (dizinBaglantisiAc kullanin).";
}else{
if (!is_dir($dizinAdi)){
$this->mesaj= "$dizinAdi bir dizin degil!";
}else{
return rmdir($dizinAdi);
}
}
}
}
function calismaDizini(){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj="Dizin adını belirlemelisiniz.";
}else{
if (!isset($this->kol_ac)){
$this->mesaj= "Dizini açmanız gerekir (dizinBaglantisiAc kullanin).";
}else{
return getcwd();
}
}
}
function dizinBaglantisiAc(){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj="Dizin adını belirlemelisiniz.";
}else{
if (!is_dir($this->dizinAdi)){
$this->mesaj="$this->dizinAdi bir dizin degil!";
}else{
$this->kol_ac = opendir($this->dizinAdi);
}
}
}
function dizinAc($dizinAdi){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
if (!is_dir($this->dizinAdi)){
$this->mesaj="$this->dizinAdi bir dizin degil!";
}else{
chdir($dizinAdi);
}
}
}
function baglantisizAgaciGoruntule(){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
if (!isset($this->kol_ac)){
$this->mesaj= "Dizini açmanız gerekir (dizinBaglantisiAc kullanin).";
}else{
while($this->oku = readdir($this->kol_ac)) {
if(!file_exists($this->oku)){
echo $this->oku . "<br>\n";
}
}
}
}
}
function Yenile(){
$this->mesaj="";
if (!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
if(!isset($this->kol_ac)){
$this->mesaj= "Dizini açmanız gerekir (dizinBaglantisiAc kullanin).";
}else{
rewinddir($this->kol_ac);
}
}
}
function Kapat(){
$this->mesaj="";
if(!isset($this->dizinAdi)){
$this->mesaj= "Dizin adını belirlemelisiniz.";
}else{
if(!isset($this->kol_ac)){
$this->mesaj="Dizini açmanız gerekir (dizinBaglantisiAc kullanin).";
}else{
closedir($this->kol_ac);
}
}
}
}
$d = new Dizin();
$d->dizinOlustur("test");
echo $d->mesaj."<br>";
echo "Bulunduğunuz Klasör : ". $d->calismaDizini() ."<br>";
$d->isimAyarla("Admin");
$d->dizinBaglantisiAc();
echo "Admin Dizini İçindekiler:<br> ";
$d->baglantisizAgaciGoruntule();
$d->Yenile();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
5 lines
test dizini zaten mevcut
Bulunduğunuz Klasör : C:\localweb
Admin Dizini İçindekiler:
admin.php
config
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Bir Klasörün İçindeki Tüm Dosya ve Klasörleri Görüntülemek

PHP
62 lines
<?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>";
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

JavaScript
7 lines
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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Klasör Oluşturarak Dosya Yazma Sınıfı

PHP
56 lines
<?php
class dosyaYazici{
var $yenimaske= 0;
var $klasorizin= 0777;
var $dosyaizin= 0777;
var $kullanici= "nobody";
public $hata=null;
function yeniKlasor($yol,$klasorname){
if(!file_exists(getcwd().$yol.$klasorname)){
$oldumask = @umask($this->yenimaske);
$b = @mkdir(getcwd().$yol.$klasorname, $this->klasorizin);
@umask($oldumask);
if($b==TRUE){
return TRUE;
} else {
$this->hata.="Klasör Oluşturulamadı";
return FALSE;
}
} else return TRUE;
}
function yaz($dosya,$icerik){
if(!empty($dosya) && !empty($icerik)){
$fp = fopen($dosya,"w");
$b = fwrite($fp,$icerik);
fclose($fp);
@chmod($dosya,$this->dosyaizin);
@chown($dosya,$this->kullanici);
if($b != -1){
return TRUE;
} else {
$this->hata.="Dosya Yazılamadı";
return FALSE;
}
} else {
$this->hata.="Dosya veya İçerik Bulunamadı";
return FALSE;
}
}
function oku($dosya){
if(!empty($dosya)){
$dt = fopen($dosya, "rb");
$icerik = fread($dt, filesize($dosya));
fclose($dt);
echo $icerik;
} else {
$this->hata.="Dosya Bulunamadı";
return FALSE;
}
}
}
$fw = new dosyaYazici;
$fw->yeniKlasor("/","klasor");
$fw->yaz(getcwd()."/klasor/file.txt","bubirdenemedir");
$fw->oku(getcwd()."/klasor/file.txt");
echo $fw->hata;
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
1 lines
bubirdenemedir
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Dosya ve Klasörleri Listeleme

PHP
28 lines
<?php
class dizin{
function tara($dizin){
$veriler = array();
$yol = $dizin."/";
if ($topla = @opendir($dizin)) {
while (false !== ($dosya = readdir($topla))) {
if (true == is_dir($yol.$dosya)&&$dosya !== "." && $dosya !== ".."){
$veriler = array_merge($veriler, $this->tara($yol.$dosya));
}
elseif (false == is_dir($yol.$dosya)){
$veriler[] = $yol.$dosya;
}
}
}else{
echo "Dizin okunamıyor - ".$dizin;
}
closedir($topla);
return $veriler;
}
}
$obj = new dizin;
echo "<pre>";
//$obj->tara("."); geçerli dizin için
//$obj->tara("ç.") ana dizin için
print_r($obj->tara("."));
echo "<pre>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
5 lines
Array
(
[0] => ./index.php
[1] => ./test.php
)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Zip Arşiv Sınıfı Kullanımı

Bu sınıfı kullanarak klasörleri dosya ve alt klasörleri ile birlikte sıkıştırabilirsiniz.

<?php
class Zipleyici extends ZipArchive { 
 public $zipadi=NULL;
 public function klasorEkle($dizin) { 
 $this->open($this->zipadi,ZipArchive::CREATE);
 echo $dizin . ' Ekleniyor <br>'; 
 $this->addEmptyDir($dizin); 
 $dosyalar = glob($dizin . '/*'); 
 foreach ($dosyalar as $dosya) { 
 echo $dosya . '<br>'; 
 if (is_dir($dosya)) { 
 $this->klasorEkle($dosya); 
 }elseif (is_file($dosya)){ 
 $this->addFile($dosya); 
 } 
 } 
 } 
}

$zip=new Zipleyici;
$zip->zipadi="arac.zip";
$zip->klasorEkle("arac");//klasör adı
$zip->close();
?>

Not: Extend ile dahil edilen ZipArchive sınıfı; PHP 5.2.0 ve sonrası veya PECL zip 1.1.0 ve sonrasında çalışmaktadır.