PHP Dosya Oluşturma – Okuma – Silme

Yazıma hoşgeldiniz. Bu yazımda php dosya okuma , silme ve oluşturma işlemlerini anlatacağım. İlk olarak oluşturma ile başlayalım:

PHP Dosya Oluşturma

PHP dosya oluşturmak için touch() metodu kullanılır. Bu touch() metodu iki parametre alır.

touch( par1, par2 );

  • par1: Oluşturulacak dosyanın adı uzantısı ile birlikte girilir.
  • par2: oluşturma ve düzenlenme tarihini ayarlar.

Örnek:

touch("test.txt")

PHP’nin olduğu dosyaya bakarsanız bu dosya çalıştıktan sonra o dosyada text.txt adıda bir dosya oluştuğunu göreceksiniz.


Örnek:

touch("test.txt",time() - 10000)

Eğer 2.parametri olan time özelliğinide kullanırsam yukarıdaki metod şu şekilde çalışır: Şuan ki zamandan tam 10.000 saniye önce bu dosya oluşturuldu. Eğer dosyanın özelliğine bakarsanız oluşturulma zamanının o anki zamandan tam 10.000 saniye önce olduğunu göreceksiniz.


PHP Dosya Okuma

PHP’de dosya okuma için yedi metot kullanılır.

  • fopen(): Dosyayı açmamızı sağlar.
  • fclose(): Dosyayı kapamamızı sağlar.
  • fwrite() : Dosyaya yazmamızı sağlar.
  • fread(): Tüm içeriği okumamızı sağlar.
  • fgets(): Satır satır okumamızı sağlar.
  • feof(): Dosyanın sonuna gelinip gelinmediğini döndürür.
  • filesize(): Dosya karakter sayısını döndürür.

Bunun haricinde de 6 tane kip bulunuyor.

  • r : okumak için aç.
  • r+: okumak ve yazmak için aç.
  • w: yazmak için aç (dosya yok ise oluşturur)
  • w+: okumak ve yazmak için aç.
  • a: yazmak için aç. (korur)
  • a+: okumak ve yazmak için aç. (korur)

Yukarıdaki test.txt dosyasını oluşturduğunuzu düşünerek devam ediyorum. Basit bir yazdırma işlemi yapalım.


Örnek:

  // touch("test.txt");

  $ICERIK = 'Test.txt dosyasına hoş geldiniz...';

  $DOSYA = fopen("test.txt",'w');
  fwrite($DOSYA,$ICERIK);
  fclose($DOSYA);

Yukarıdaki kodu çalıştırdığınızda test.txt dosyasının içeriğine ‘Test.txt dosyasına hoş geldiniz…’ yazısının geldiğini göreceksiniz.

Eğer $ICERIK değerinin içeriğini değiştirip tekrar çalıştırırsanız mevcut olan içeriği silip ondan sonra dosyaya bu değeri yazdırdığını göreceksiniz. Eğer mevcut değeri koruyup, devamında yazmak istiyorsanız a kipini kullanmak zorundasınız.

  $ICERIK = '2.kez Test.txt dosyasına hoş geldiniz...';

  $DOSYA = fopen("test.txt",'a');
  fwrite($DOSYA,$ICERIK);
  fclose($DOSYA);

Örnek:

Dosyayı okumak istiyorsak fread() metodunu kullanmak zorundayız. fread() metodu iki parametre alır. Bunlardan birincisi dosyanın kendisi, ikincisi dosyada alınacak karakter sayısı.

  $DOSYA = fopen("test.txt",'r');
  echo fread($DOSYA, 10); // 10 karakter için
  echo '<br>';
  echo fread($DOSYA, 30); // 30 karakter için
  echo '<br>';
  echo fread($DOSYA, 100); // 100 karakter için
  fclose($DOSYA);

Output:

Test.txt d
osyasına hoş geldiniz…2.ke
z Test.txt dosyasına hoş geldiniz…

Görüldüğü gibi okuma işlemi başarılı bir şekilde oldu. Eğer dosyanın karakter sayısını bilmiyorsak ki bunu bilende ne biliyim yani 🙂 neyse. Bilmiyorsak bu seferde 2.parametreye filesize() metodunu kullanıp tüm içeriği yazdırabiliriz.

  $DOSYA = fopen("test.txt",'r');
  echo 'karakter sayısı: ' . filesize('test.txt'); 
  echo '<br>';
  echo fread($DOSYA, filesize('test.txt')); 
  fclose($DOSYA);

karakter sayısı: 78
Test.txt dosyasına hos geldiniz… 2.kez Test.txt dosyasına hos geldiniz…


Örnek:

test.txt dosyasının içindeki tüm içeriği silip bu örneğe öyle devam edelim. Şimdi şu kodları yazıp çalıştıralım.

  $ICERIK = 'Örnek Satır Oluşturuldu... Random değer:' . rand(0,1000) . "\n";

  $DOSYA = fopen("test.txt",'a');
  fwrite($DOSYA, $ICERIK);
  fclose($DOSYA);

Bu kodu 5 kez çalıştırın. Dosya içeriğinize baktığınızda şunun gibi bir değer ile karşılaşmanız gerekiyor.

Örnek Satır Oluşturuldu… Random değer:521
Örnek Satır Oluşturuldu… Random değer:395
Örnek Satır Oluşturuldu… Random değer:120
Örnek Satır Oluşturuldu… Random değer:524
Örnek Satır Oluşturuldu… Random değer:934

Tabi random değerler aynı olmak zorunda değil. Zaten öyle bir ihtimalde çok muhtemel değil. Konumuza geri dönecek olursak şimdi asıl konumuz olan fgets() metodunu kullanacağız. Bu metod satır satır okumamızı sağlar. Tek bir parametre alır o da fopen() metoduna ağlı olan değişkendir. Kodumuzu çalıştıralım.

  $DOSYA = fopen("test.txt",'a+');
  echo '1.SATIR: ' . fgets($DOSYA) . "<br>";
  echo '2.SATIR: ' . fgets($DOSYA) . "<br>";
  echo '3.SATIR: ' . fgets($DOSYA) . "<br>";
  echo '4.SATIR: ' . fgets($DOSYA) . "<br>";
  echo '5.SATIR: ' . fgets($DOSYA) . "<br>";
  fclose($DOSYA);

1.SATIR: Örnek Satır Oluşturuldu… Random değer:521 
2.SATIR: Örnek Satır Oluşturuldu… Random değer:395 
3.SATIR: Örnek Satır Oluşturuldu… Random değer:120 
4.SATIR: Örnek Satır Oluşturuldu… Random değer:524 
5.SATIR: Örnek Satır Oluşturuldu… Random değer:934 


PHP Dosya Silme

Dosyayı silmek için unlike() metodu kullanılır.

  unlike('test.txt');

Bu metodu kullandıktan sonra dosya silinmiş olacaktır.


Ek olarak file() metodunu da göstereyim. Bu olduğu gibi bir metottur. Kipi falan yok. Direk dosya yolunu belirtin ve kullanın.

  $DOSYA = file('test.txt');
  echo '<pre>';
  print_r($DOSYA);
  echo '</pre>';

[0] => Örnek Satır Oluşturuldu… Random değer:521
[1] => Örnek Satır Oluşturuldu… Random değer:395
[2] => Örnek Satır Oluşturuldu… Random değer:120
[3] => Örnek Satır Oluşturuldu… Random değer:524
[4] => Örnek Satır Oluşturuldu… Random değer:934