PHP Dosya/Klasör İşlev Örnekleri
Kes yapıştır PHP klasör ve dosya işlevleri.
Bir klasörü ve içindeki bütün dosyaları sil.
<?PHP /* * Bu işlev klasörü ve içindeki bütün dosyaları siler. * $empty = true halinde sadece dosyalar silinir. Klasör silinmez */ function hepsiniKaldir($klasor, $empty = false) { if(substr($klasor,-1) == "/") { $klasor = substr($klasor,0,-1); } if(!file_exists($klasor) || !is_dir($klasor)) { return false; } elseif(!is_readable($klasor)) { return false; } else { $klasorHandle = opendir($klasor); // klasöre git while ($icerik = readdir($klasorHandle)) { // klasörü oku if($icerik != '.' && $icerik != '..') { $path = $klasor . "/" . $icerik; if(is_dir($path)) { hepsiniKaldir($path); } else { unlink($path); } } } closedir($klasorHandle); if($empty == false) { if(!rmdir($klasor)) { return false; } } return true; } } ?>
Sadece bir dosya sil.
/* istenilen dosyayı sil $dosyaadi c:\temp\demo\dosya.txt dosyasil('c:\temp\demo\dosya.txt') */ function dosyasil($dosyaadi){ unlink($dosyaadi); }
Bir klasör Oluştur.
<?PHP /* * Bu işlev verilen bir isimle klasör oluşturur. * $yeniklasor: klasör ismi * $path: klasörün sabit diskteki yeri * klasorOlustur('C:\TEMP', 'phpklasor'); // phpklasor adında yeni bir klasör oluştur */ function klasorOlustur($path, $yeniklasor) { if(!is_dir($path.'/'.$yeniklasor)) { return 'Geçersiz dizin'; } else if(file_exists($path.$yeniklasor)) { return 'Klasör mevcut'; } else if(!is_writable($path)) { return 'Dizin oluşturulamıyor, dizine ulaşma yetkiniz yok'; } else if(mkdir($path.'/'.$yeniklasor) === true){ return 'Dizin başarı ile oluşturuldu'; } } ?>
Sadece Klasörleri listele.
<?PHP /* * Bu işlev sadece klasörleri ul formatinda listeler. * kullanimi sadeceKlasorListele("C:\TEMP"); */ function sadeceKlasorListele($dirs) { $empty=true; $ul ='<ul>'; foreach(glob($dirs.'/*', GLOB_ONLYDIR) as $dir){ $dir = basename($dir); $ul .= '<li><a href="Javascript:void(0)">'.$dir.'</a></li>'; $empty=false; } if ($empty){ $ul .= '<li><span>Klasör bulunamadı...</span></li>'; } $ul .='</ul>'; return $ul; } ?>
Sadece dosyaları listele.
/* * Bu işlev sadece dosyalari ul formatinda listeler. * kullanimi sadeceDosyaListele("C:\TEMP"); */ function sadeceDosyaListele($dirs) { $ul ='<ul>'; if ($handle = opendir($dirs)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "Thumb.db" && $file != "Thumbs.db") { if(is_file($dirs.'/'.$file)){ $empty=true; $ul .= '<li><a href="Javascript:void(0)">'.$file.'</a></li>'; $empty=false; } } } } if ($empty){ $ul .= '<li><span>Dosya bulunamadı...</span></li>'; } $ul .='</ul>'; return $ul; }
Klasör mevcut değilse oluştur.
<?PHP /* * Klasör varmı diye kontrol et, yoksa oluştur */ function klasorYoksaOlustur($path){ return is_dir($path) || mkdir($path); } ?>
Klasördeki bütün dosyaları say.
<?PHP /* * Klasör içindeki bütün dosyaları sayar ve adeti gösterir */ function dosyaSayisi($klasor){ $sayac = 0; if (is_dir($klasor) && $handle = opendir($klasor)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "Thumb.db" && $file != "Thumbs.db") { $sayac++; } } closedir($handle); } return $sayac; } /* * Bu işlev ise öznitelikli(recursive) olarak dosyaları sayar kullanımı: $dosyaadedi = dosyaSayisi("/home/klasor", true); // alt klasörlerde dahil olmak üzere bütün dosyaları sayar. $dosyaadedi = dosyaSayisi("/tmp"); // /tmp klasöründekı dosyaları sayar. Alt klasörler ve içlerindeki dosyalar sayılmaz. */ function dosyaSayisi($klasor, $recursive=false, $sayac=0) { static $sayac; if(is_dir($klasor)) { if($dh = opendir($klasor)) { while(($dosya = readdir($dh)) !== false) { if($dosya != "." && $dosya != "..") { $sayac = (is_dir($klasor."/".$dosya)) ? dosyaSayisi($klasor."/".$dosya, $recursive, $sayac) : $sayac+1; } } closedir($dh); } } return $sayac; } ?>
Bir klasörün kapasitesini bul.
<?PHP /* * Bu işlev klasörün kapasıtesini bulur. */ function klasorKapasitesi($klasor){ $kapasite = 0; foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($klasor)) as $dosya) { $kapasite += $dosya->getSize(); } return $kapasite; } ?>
Bir klasörün içinden gelişi güzel resim dosyası seç.
<?PHP /* * Bu işlev klasörün içinden gelişi güzel bir resim dosyası seçer. */ function gelisiGuzelResimSec(){ $klasor = 'upload/'; $images = glob($klasor . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); if ($images[array_rand($images)] != ''){ return $images[array_rand($images)]; // See comments } else { return 'upload/resimbulunamadi.jpg'; } } ?>
Bir dosyanın uzantısını bul.
<?PHP function dosyaUzantisiniBul($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } ?>
Bir dosyanın kapasitesinin formatlanması.
<?PHP function formatKapasite($kapasite) { $kapasiteler = array(" Byte", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); if ($kapasite == 0) { return; } else { return (round($kapasite/pow(1024, ($i = floor(log($kapasite, 1024)))), $i > 1 ? 2 : 0) . $kapasiteler[$i]); } } ?>
Yerel dosyayı oku.
/* text dosyasını oku yereldosyaoku($dosyaadi); // c:\temp\demo\dosya.txt */ function yereldosyaoku($dosya) { return file_get_contents($dosya); }
Yerel dosyayı kaydet.
/* değiştirilen dosyayı kaydet yereldosyakaydet($dosyamevki, &$data, $ekle= false); // // $dosyamevki c:\temp\demo\dosya.txt */ function yereldosyakaydet($dosyamevki, &$data, $ekle= false) { if($ekle) { / dosyaya ekle yoksa yeniden yaz return file_put_contents($dosyamevki, $veri, FILE_APPEND); } return file_put_contents($dosyamevki, $veri); }
Dosyayı kopyala.
/* not: eğer aynı isimde başka bir dosya mevcutsa, yenisi ile değiştirilir. dosyakopyala('c:'temp\1\eskidosya.txt','c:\temp\2\yenidosya.txt'); */ function dosyakopyala($dosya,$yenidosya) { copy($dosya, $yenidosya); }
Dosyayı başka bır yere taşı.
/* dosyayi yeni mevkiye taşı ve öncekini sil dosyatasi('c:'temp\1\eskidosya.txt','c:\temp\2\eskidosya.txt'); */ function dosyatasi($dosyaadi,$yenidosya) { copy($dosyaadi, $yenidosya); // unlink($dosyaadi); // eskidosya.txt kaldırıldı }
X günden önceki tüm dosyaları sil
/* X günden önce oluşturulmuş bütün dosyaları sil eskiDosyalariSil('C:\TEMP',5); //temp klasörünün içindeki 5 günden önce oluşturulmuş bütün dosyaları siler */ function eskiDosyalariSil($klasör,$gun){ if (file_exists($klasör)) { foreach (new DirectoryIterator($klasör) as $dosya) { if ($dosya->isDot()) { continue; } if (time() - $dosya->getCTime() >= $gun*24*60*60) { unlink($dosya->getRealPath()); } } } }
Dosya uzantısını bul
// kullanımı dosyaUzantisi("dosya.doc"); function dosyaUzantisi($dosya){ return pathinfo($dosya, PATHINFO_EXTENSION); }