Php, dosya işlemleri (açma, yazma, kapama)
10691 0

Çok sık kullanılmasa da bazen çok işe yarayacak olan dosya işlemlerinden bahsedeceğim. Programlama ile ilk tanıştığım zamanlarda veritabanı sistemleri çok gelişmiş olmadığı için dosyalama işlemleri ile verileri saklıyorduk ve bu işlemler bir program için hayati önem taşıyordu. Şimdi daha çok veritabanı kullanıldığı için dosya işlemleri biraz daha az kullanılmakta.

Öncelikle işlem yapacağımız dosyayı açmamız gerekiyor. Fakat bilinmesi gereken en önemli şey, dosyayı hangi amaçla açıyoruz. Bunu bildirmemiz gerekiyor.

  • r   :  Dosyayı okumak için açar. (read)
  • r+ :  Dosyayı hem okumak hem de yazmak için açar. (read)
  • w  :  Dosyayı yazmak için açar. Var olan içeriği siler (write)
  • w+:  Dosyayı hem yazmak hem de okumak için açar. Var olan içeriği siler, baştan yazar. (write)
  • a   :  Dosyayı yazmak için açar. Var olan içeriği silmez sonuna ekler. (append)
  • a+ :  Dosyayı hem yazmak hem de okumak için açar. Var olan içeriği silmez sonuna ekler. (append)
  • x   :  Dosyayı oluşturur ve yazmak için açar. Eğer dosya zaten varsa FALSE döner.
  • x+ :  Dosyayı oluşturur, yazmak ve okumak için açar. Eğer dosya zaten varsa FALSE döner.

Yukarıda php dilinde kullanılan dosya kiplerini görmektesiniz, yapacağınız işleme uygun olan kipi seçip fopen() fonksiyonu ile kullanmalısınız. Henüz ortada bir dosya yok ise;

<?php
if(file_exist("deneme.txt"){
    $dosya=fopen("deneme.txt","w");//Dosya var ve yazmak için aç
}else{
    $dosya=fopen("deneme.txt","x");//Dosya yok, oluştur ve yazmak için aç
}
?>

 file_exist() fonksiyonu belirtilen dosyanın var olup olmadığını kontrol eder, eğer varsa true yoksa false değeri döndürür. Örnek kodda dosya varsa yazmak için açıyoruz. Eğer yoksa önce oluşturup sonra yazmak için açıyoruz. Örneğimize devam edelim ve dosyamıza birşeyler yazmaya çalışalım.

<?php
if(file_exist("deneme.txt"){
    $dosya=fopen("deneme.txt","w");//Dosya var ve yazmak için aç
}else{
    $dosya=fopen("deneme.txt","x");//Dosya yok, oluştur ve yazmak için aç
}

fwrite($dosya,"Yılmaz Arslantürk\n");

fclose($dosya);
?>

Gördüğünüz üzere fwrite() fonksiyonu ile dosyamıza 1 satır ekledik ve dosyamızı kapattık. Tırnaklar içerisinde "\n" ifadesi 1 satır aşağıya indir anlamına gelir. Buna benzer "\t" karakteri bir tab sekmesi(8 karakter) boşluk bırak anlamına gelir. Dosya yazarken bu karakterleri kullanmak çok fayda sağlar. Okuma işlemi yaprken bu karakterlere göre okuma yapılır. Örnek kodlarımızı bir defa çalıştırırsanız dosyaya 1 satır eklendiğini görürsünüz. Eğer sayfayı yenilemeye başlarsanız alt alta kayıtların oluşmaya başladığını gözlemleyebilirsiniz. Bir başka dosyaya yazım şeklini aşağıda görebilirsiniz.

<?php
if(file_exist("deneme.txt"){
  touch("deneme.txt");
}

$mevcutIcerik=file_get_contents("deneme.txt");
$mevcutIcerik.="Ahmet Ateş\n";
if(file_put_contents("deneme.txt",$mevcutIcerik)){
    echo "İçerik Değişti, Dosyaya Yazıldı.";
}else{
    echo "Yazım işlemi başarısız.";
}
?>

Bu örnekte de bir yazım işlemi yapılmaktadır. Eğer "deneme.txt" dosyası yoksa touch() fonksiyonu ile sıfırdan oluşturuyoruz. Daha sonra mevcut dosyanın içeriğini file_get_contents() ile $mevcutIcerik değişkeni içerisine aktarıyoruz. Yeni isim bilgisine bu metnin üzerine ekledikten sonra son halini dosyaya tümden file_put_contents() ile yazdırıyoruz. Eğer yazım işlemi başarılı olursa true olmazsa false değeri döner ve şart ifadesi ona göre çalışır.

^
X