Merhaba arkadaşlar bu dersimde PHP ile Dosya Oluşturma, Okuma ve Silme konusundan bahsedeceğim.

Dosya Oluşturma

PHP ile dosya oluştururken touch() fonksiyonunu kullanıyoruz. touch() fonksiyonu 2 parametre almaktadır fakat ikinci parametre girilmesine gerek yoktur. Bu parametrelerden ilki Dosya Adı ikincisi ise zamandır yani

touch(DOSYA ADI, ZAMAN);

şeklinde bir kullanımı vardır. Buradaki ZAMAN oluşturulma tarihini temsil eder eğer ZAMAN kısmını boş bırakırsanız o anda bulunduğunuz tarih, saat ve dakikayı dosyanın oluşturulma saati olarak ekler fakat ZAMAN kısmına time() – 84000 gibi bir ifade kullanırsanız şu andan 84000 saniye önceside dosya oluşturmuş gibi davranır.

<?php

touch(‘aydin.txt’);

touch(‘aydin2.txt’, time() – 84000);

?>

Kodlarını yazıp php dosyasını çalıştırırsanız aydin.txt ve aydin2.txt adında 2 adet dosya oluşur fakat bunların arasında bir fark vardır. Bu fark ise oluşturulma tarihleridir.

Gördüğünüz gibi aydin.txt Bugün 01:23 tarihinde oluşturulmuşken aydin2.txt Dün 02:03 tarihinde oluşturulmuş olarak gözükmektedir ama aslında 2’side aynı anda oluşturulmuşlardır.

Dosya Okuma

Dosya okuma işlemi oluşturmaktan daha karmaşıktır. Bunlar için kullandığımız belirli fonksiyonlar vardır bunlar;

  • fopen() – dosyayı açmamızı sağlar
  • fclose() – dosyayı kapamamızı sağlar
  • fwrite() – dosyaya bir şeyler yazmamızı sağlar
  • fread() – tüm içeriği okut
  • fgets() – satır satır okur
  • feof() – dosyanın sonuna gelinip gelinmediğine bakar

bu fonksiyonları detaylı bir şekilde anlatmak gerekirse

fopen()

fopen(), fonksiyonu 2 parametre alan ve dosyanın açılmasını sağlayan fonksiyondur. İlk parametresi DOSYA ADI ikinci parametresi ise kiplerdir bu kiplerden bahsetmek gerekirse

  • r – okumak için aç
  • r+ – okumak ve yazmak için aç
  • w – yazmak için aç (dosya yoksa oluştur varsa üstüne yaz)
  • w+ – okumak ve yazmak için aç
  • a – yazmak için aç (Sonuna ekleme yaparak)
  • a+ – okumak ve yazmak için aç

şeklindedir şimdi bir örnek vermek gerekirse

<?php

$dosya = fopen(‘aydin.txt’,’w’);

şeklinde bir kullanımda önceki örneğimizde oluşturduğum aydin.txt dosyasına bir şeyler yazmak için açtık ve fonksiyonu dosya adında bir değişkene eşitlemek ise işimizi kolaylaştırır.

fwrite()

fwrite(), fonksiyonu 2 parametre alan ve dosyanın içerisine bir şeyler yazmamızı sağlayan bir fonksiyondur parametrelerinin ilki DOSYA ikincisi ise YAZILACAK İÇERİKTİR.

fwrite($dosya,”Bu bir Aydın Can Altun içeriğidir”);

şeklinde yazarsak aydin.txt dosyasının içine “Bu bir Aydın Can Altun içeriğidir” yazısı yazılacaktır.

fclose()

fclose(), fonksiyonu 1 parametre alan ve dosyayı kapatan fonksiyondur. Parametresi ise DOSYA’dır.

fclose($dosya);

?>

şeklinde kodlarımızı tamalarsak ve sayfayı çalıştırırsak. Oluşturduğumuz aydin.txt dosyasının içine belirtmiş olduğumuz içerik gelicektir.

fread()

fread(), fonksiyonu 2 parametre alan ve dosyanın içeriğini okumamızı sağlayan bir fonksiyondur. İlk parametresi DOSYA ikinci parametresi ise okunacak karakter sayısıdır. Her zaman içeride içeriğin karakter sayısını bilemeyeceğimiz için filesize(DOSYA_ADI) şeklinde olan fonksiyonumuzu kullanarak tüm dosyanın okunmasını sağlayabiliriz.

Daha demin verdiğimiz örneği biraz daha değiştirisek

<?php

$dosya = fopen(‘aydin.txt’, ‘r’);

echo fread($dosya, filesize(‘aydin.txt’));

fclose($dosya);

?>

şeklinde yazıp çalıştırırsak alıcağımız sonuç

şeklinde olacaktır.

fgets() ve feof()

fgets(), fonksiyonu bir dosyayı satır satır okumamıza yardımcı olur. 1 parametre alır oda DOSYA dır. Şimdi fgets()’in kullanımını bir örnek ile anlatayım.

<?php

$icerik = ‘Rastgele içerik ‘ . rand(0,100) . “\n”;

$dosya = fopen(‘aydin2.txt’, ‘a’);

fwrite($dosya, $icerik);

fclose($dosya);

?>

Şimdi bu sayfayı bir kaç kez yenilersek aydin2.txt dosyasına sürekli yeni satır eklenecektir. Şimdi satırları yazdırmak için 2 yöntemimiz vardır.

1. Yöntem

Birinci yöntem aslında zor ve uzun olan yöntemdir. Yapıcağımız şey şu sürekli olarak fgets ile ekrana yazdırmak.

<?php

$dosya = fopen(‘aydin2.txt’, ‘a+‘);

echo fgets($dosya) . “<br>”;

echo fgets($dosya) . “<br>”;

echo fgets($dosya) . “<br>”;

echo fgets($dosya) . “<br>”;

echo fgets($dosya) . “<br>”;

fclose($dosya);

?>

şeklinde kullanarak son satıra gelene kadar yazdırabilirsiniz ve ya kolay yöntem olan feof() fonksiyonundan yararlanıp bir döngü ile yazdırma işlemini yaparız.

Öncelikle feof() fonksiyonundan bahsetmek gerekirse bir parametre alır buda DOSYA dır eğer dosyanın sonuna gelindiyse TRUE değerini döndürür.

2. YÖNTEM

Yapıcağımız işlem feof() ile bir while döngüsü kurarak ekrana fgets() fonksiyonu ile satırları yazdırmak

<?php

$dosya = fopen(‘aydin2.txt’, ‘a+‘);

while(!feof($dosya)){

echo fgets($dosya) . “<br>”;

}

fclose($dosya);

?>

şeklinde bir kullanım ile bizi satırlarca kod yazmaktan kurtarıyor. Şimdi son bölüm olan silme kısmına geliyoruz.

Dosya Silme

Dosya silme işlemi için unlik() fonksiyonu kullanılıyor bu fonksiyon 1 parametre alıyor bu parametrede DOSYA ADI oluyor.

<?php

unlink(‘aydin.txt’);

unlink(‘aydin2.txt’);

?>

şeklinde yazıp kodumuzu çalıştırırsak dosyalarımızı silecektir 2. kez çalıştırdığımız zaman ise böyle bir dosya yoktur hatası ile karşılaşacağız.

Özet,

Kısacası bu yazımızda touch, fopen, fclose, fread, fwrite, fgets, feof, unlink gibi fonksiyonların kullanımından fopen fonksiyonunun parametreleri olan kipleri öğrendik. Bunların hepsini kullanan birer örnek yaptık ve daha sonra dosyalarımızı silerek geri de herhangi bir dosya bırakmadık. PHP ile Dosya işlemleri dersimizin sonuna gelmiş bulunurken. Önümüzdeki PHP dersinde PHP Dizin işlemlerinden bahsedeceğim bu zamana kadar diğer PHP derslerimi incelemek isterseniz buraya tıklayabilirsiniz.