• Şuradasınız
  • Anasayfa
  • PHP
  • PHP : Dosyalama İşlemleri

PHP : Dosyalama İşlemleri

C Programlama dili ile çalışmış olanlar, PHP de dosyalama işlemleri ile uğraşırken aslında hiç de zorlanmayacaklardır, neredeyse birebir aynı syntax(yazım kuralı) ve aynı mantık ile çalışmaktadırlar. C ve PHP dillerinin birbirlerine ne kadar çok benzediğine bu yazı da bir kanıt niteliğinde olacak. Aşağıda yazının içeriğini bulabilirsiniz.

  • Dosya ve Klasör Kontrol Fonksiyonları
  • Dosya Oluşturma
  • Dosya Açma, Kapama Fonksiyonları ve Dosya Erişim Modları
  • Dosyaya Veri Girme
  • Dosyadan Veri Çekme Fonksiyonları
  • Dosya Silme
  • Dosyanın Boyutunu Öğrenme
  • Klasör Oluşturma ve Silme

Dosya ve Klasör Kontrol Fonksiyonları

Dosya kontrol fonksiyonları ile bir dizinde aradığınız dosyanın olup olmadığını kontrol edebilirsiniz. Sadece dosya değil bunu bir klasör için de yapabilirsiniz.

if(file_exists("index.php")) {
   echo "Dosya Bulundu";
} else {
   echo "Dosya Bulunamadı";
}

file_exists fonksiyonu dosya ya da dizin var mı ? sorusunu sizin için cevaplıyor.

Yukarıdaki kod “index.php” adlı dosyayı bulabilirse “Dosya Bulundu”, bulamazsa “Dosya Bulunamadı”yazacaktır. Bu örnekte biz bir dosya için kontol yaptık. Fakat siz bir klasör için de kontrol yapabilirsiniz. file_exists fonksiyonun her ikisi içinde çalıştığını söylemeden geçmeyeyim.

Bunun dışında, ismini verdiğiniz bir dosya/klasör’ün dosya mı klasör mü olduğunu bulan fonksiyonlar da bulunmaktadır.
is_file fonksiyonu, aradığı dosyayı bulursa geriye true değerini döndürür.
is_dir fonksiyonu ise aradığı klasörü bulursa geriye true değerini döndürür.

<?php
   // is_file ile dosya kontrolü
   $dosya_ismi = "index.php";
   if(is_file($dosya_ismi)) {
      echo "Aradığınız bir dosyadır.<br/>";
   } else {
      echo "Aradığınız bir dosya değil.<br/>";
   }
   // is_dir ile klasör kontrolü
   $klasor_ismi = "dizin";
   if(is_dir($klasor_ismi)) {
      echo "Aradığınız bir klasördür.<br/>";
   } else {
      echo "Aradığınız bir klasör değildir.<br/>";
   }
?>

Dosya Oluşturma

PHP de dosya oluşturma işlemini touch fonksiyonu yapmaktadır. Aşağıda bununla ilgili küçük bir örnek yer almakta. Örnekte eğer dosya varsa “Dosya bulundu”, eğer yoksa “Dosya bulunamadı ve oluşturuluyor” yazılıyor ve ardından dosya oluşturuluyor.

<?php
   if(file_exists("header.php")) {
      echo "Dosya bulundu.";
   } else {
      echo "Dosya bulunamadı, oluşturuluyor...<br/>";
      if(touch("header.php")) {
         echo "Dosya oluşturma işlemi başarılı.";
      } else {         
         echo "Dosya oluşturulamadı.";
      }
   }
?>

Dosya Açma, Kapama Fonksiyonları ve Dosya Erişim Modları

Bir dosyaya veri yazmak ya da bir dosyadan veri çekmek için öncelikle dosyanın açılması gerekiyor. Açılan dosyanın da erişim moduna göre yazma ve okuma işlemler kısıtlanabiliyor.

  • r – Sadece okuma işlemleri için erişim sağlar. İmleç dosyanın başına taşınır.
  • r+ Okuma ve yazma işlemleri için erişim sağlar. İmleç dosyanın başına taşınır.
  • w Sadece yazmak için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur ve dosyada veri varsa sıfırlar. İmleç dosyanın başına taşınır.
  • w+ Okuma ve yazma işlemi için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur ve dosyada veri varsa sıfırlar. İmleç dosyanın başına taşınır.
  • a Sadece yazma işlemi için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur. İmleç dosyanın sonuna taşınır.
  • a+ Okuma ve yazma işlemi için erişim sağlar. Eğer dosya yoksa yeni bir dosya oluşturur. İmleç dosyanın sonuna taşınır.
  • x Dosya mevcut değilse oluşturulur ve sadece yazmak için erişim sağlar. Dosya mevcutsa FALSE döndürür. İmleç dosyanın başına taşınır.
  • x+ Dosya mevcut değilse oluşturulur. Okuma ve yazma işlemleri için erişim sağlar. Dosya mevcutsa FALSE döndürür. İmleç dosyanın başına taşınır.

Bu tabloyu Celal Yurtçu‘nun sitesinde de bulabilirsiniz. Aşağıda dosya açma fonksiyonu ve parametreleri gösterilmiştir. İçine 2 parametre alan bu fonksiyonun birinci parametresi açılacak dosyanın ismi, ikincisi ise açma modunu göstermektedir.

$baglan = fopen("dosya.txt","w");
fclose($baglan);

Dosya bu şekilde açılabilmektedir. Burada geriye döndürülen değer dosyanın başına konumlanan bir işaretçidir. Yazma moduna göre dosyanın neresine konumlanılacağı değişebilir. Örneğin “a” modunda dosyanın sonuna konumlanılmaktadır.

Açılan her dosyanın kapatılmasında yarar vardır, açtığınız dosyayı kapatmayı unutmayın.

Dosyaya Veri Girme

Dosyaya veri ekleme, dosya açıldıktan sonra yapılabilecek bir işlemdir. Dosyayı açtıktan sonra, ekleme işlemini yapabilmeniz için 2 farklı fonksiyon bulunmaktadır : fputs, fwrite.

$baglan = fopen("dosya.txt","a");
   fputs($baglan,"Ben dosyaya fputs ile eklenen veriyim. ");
   fwrite($baglan,"Ben de dosyaya fwrite ile eklenen veriyim.");
fclose($baglan);

Yukarıdaki gibi dosyaya ekleme yapabilirsiniz. Buradaki erişim modu “a” olduğundan sayfayı her yenilediğinizde, dosyanın sonuna ekleme yapılacaktır. Eğer “w” olsaydı her seferinde dosyanın içindeki veri silinip tekrar yazılacaktı.

Dosyadan Veri Çekme

Dosyadan veri çekmek için de yine dosyayı açmanız gerekmektedir. Erişim modunuzun dosyayı okuyabilecek bir mod olmasına dikkat edin. Dosyadan veri çekmek için birkaç farklı fonksiyon seçeneğiniz bulunmaktadır. Ben bunlardan 2 tanesini göstermek istiyorum : fgetc, fgets.

fgetc ile dosyadaki karakterleri tek tek döngü yardımıyla dosya sonuna gelene kadar alıyoruz. Dosya sonuna kadar cümlesini kodla göstermek için !feof ifadesini kullanabiliriz. (file end of file)

$baglan = fopen("dosya.txt","r");
while(!feof($baglan)) {
   echo fgetc($baglan) . "<br/>";
}

fgets ile dosyadaki karakterleri yine döngü yardımıyla dosya sonuna gelene kadar belirtilen bir uzunluk değeri ile çekiyoruz.

$baglan = fopen("dosya.txt","r");
while(!feof($baglan)) {
   echo fgets($baglan,50) . "<br/>";
}

Bu örnekte dosyadaki veriler 50 karakterlik bloklar halinde çekilir.

Dosya Silme

PHP de herhangi bir dosyayı silmek için unlink fonksiyonu kullanılır. Unlink fonksiyonu içine silinecek dosyanın ismini parametre olarak alır.

if(unlink("dosya.txt")) {
   echo "Dosya başarılı bir şekilde silindi.";
} else {
   echo "Dosya silinemedi.";
}

Dosya Boyutunu Öğrenme

Dosyanın boyutunu öğrenmek için filesize fonksiyonu kullanılır. Aşağıdaki kod dosyanın boyutunu ekrana yazacaktır.

echo filesize("index.php");

Klasör Oluşturma ve Silme

Dosyaların haricinde bir de klasörler için üretilmiş fonksiyonlar vardır.
mkdir fonksiyonu klasör oluşturma, rmdir fonksiyonu ise klasör silme işlemlerini gerçekleştirmektedir.

if (mkdir("klasor",0700)) {
   echo "Klasör Oluşturuldu.";
} else {
   echo "Klasör Oluşturulamadı.";
}

mkdir fonksiyonun kullanımı yukarıdaki gibidir. 2 parametre alır, birisi oluşturulacak klasörün ismi ve diğeri de klasörün izin yetkisidir. Varsayılan izin yetkisi “0700”dür. Aşağıda ise rmdir fonksiyonun kullanımı verilmiştir. rmdir fonksiyonu da silinecek klasörün ismini parametre olarak alır.

rmdir("klasor")

Benzer Yazılar

Yorumlar

Yorum Yazın

Su elementleri kullanabilirsiniz : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Arama
RSS
Beni yukari isinla