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);
}
