PHP ile dosya oluşturabilir, okuyabilir, yazabilir, silebilir ya da mevcut olup olmadığını kontrol edebiliriz. Bu yazımızda ise php dosya işlemleri konusuna değinerek fonksiyonlarına tek tek değineceğiz. Gerçekleştirilen işlemler genelde log tutma, kullanıcı verisi depolama, yapılandırma dosyaları gibi alanlarda kullanılır.
PHP’de dosya işlemleri için birçok hazır fonksiyon bulunmaktadır. Şimdi bunları sırasıyla, örneklerle birlikte görelim.
1. Dosya Açma (fopen)
fopen()
fonksiyonu, bir dosyayı açmak veya oluşturmak için kullanılır. Eğer dosya yoksa ve uygun moddaysa oluşturur.
"r"
: Sadece okuma, dosya yoksa hata verir."w"
: Sadece yazma, dosya yoksa oluşturur, varsa içeriği siler."a"
: Sona ekleme, dosya yoksa oluşturur."r+"
: Okuma ve yazma, dosya yoksa hata verir."w+"
: Okuma ve yazma, dosya yoksa oluşturur."a+"
: Okuma ve yazma (ekleme modu)
1 2 3 4 5 6 7 8 | <?php $dosya = fopen("ornek.txt", "w"); // 'w' => yazma modu if ($dosya) { echo "Dosya başarıyla açıldı veya oluşturuldu."; } else { echo "Dosya açılamadı."; } ?> |
2. Dosya Okuma
fread()
belirtilen byte kadar okuma yapar. Genellikle filesize()
ile birlikte kullanılır. fopen() gibi bir fonksiyonla açılmış bir dosya işaretçisi üzerinden, belirtilen sayıda baytı okumak için kullanılır. İkili (binary-safe) bir okuma yapar, yani dosyanın içeriğini olduğu gibi, herhangi bir özel karakter yorumlaması yapmadan alır ve okunan veriyi bir string olarak döndürür. Dosya sonuna gelinmişse veya bir hata oluşmuşsa false değeri döndürür.
1 2 3 4 5 6 | <?php $dosya = fopen("ornek.txt", "r"); $icerik = fread($dosya, filesize("ornek.txt")); echo $icerik; fclose($dosya); ?> |
fgets()
her seferinde bir satır okur. Döngüyle birlikte kullanılır. fopen() ile açılmış bir dosya işaretçisini parametre olarak alır ve dosyadan bir satır okuyarak bu satırı bir string olarak döndürür. Okuma işlemi, belirtilen uzunluğa ulaşılana, yeni satır karakteri (\n) ile karşılaşılana veya dosya sonuna ulaşılana kadar devam eder.
1 2 3 4 5 6 7 8 | <?php $dosya = fopen("ornek.txt", "r"); while (!feof($dosya)) { $satir = fgets($dosya); echo $satir . "<br>"; } fclose($dosya); ?> |
file()
belirtilen bir dosyayı okuyarak, dosyanın her bir satırını bir dizi (array) elemanı olarak döndürür. Yani, dosyanın tamamını tek seferde okur ve her satırı dizinin bir elemanı yapar.
1 2 3 4 5 6 | <?php $satirlar = file("ornek.txt"); foreach ($satirlar as $satir) { echo $satir . "<br>"; } ?> |
3. Dosyaya Yazma
fwrite()
açık bir dosyaya veri yazmak için kullanılır. fopen() ile açılmış bir dosya işaretçisini ve yazılacak veriyi parametre olarak alır.
1 2 3 4 5 6 | <?php $dosya = fopen("ornek.txt", "w"); fwrite($dosya, "Merhaba, kod kampüsü!\n"); fwrite($dosya, "Bu ikinci satır."); fclose($dosya); ?> |
file_put_contents()
ile hızlı yazma gerçekleştirir. Bir dosyaya veri yazmak için kullanılan daha üst seviye bir fonksiyondur. fwrite()‘a göre daha basittir ve birçok işlemi otomatik olarak gerçekleştirir.
1 2 | <?php file_put_contents("ornek.txt", "Bu içerik doğrudan yazıldı."); |
4. Dosya Silme
unlink()
belirtilen bir dosyayı silmek için kullanılır. Tek bir parametre alır: silinecek dosyanın yolu. Eğer dosya başarıyla silinirse true, bir hata oluşursa (örneğin, dosya yoksa veya silme izni yoksa) false döndürür.
1 2 3 4 5 6 7 | <?php if (unlink("ornek.txt")) { echo "Dosya silindi."; } else { echo "Dosya silinemedi."; } ?> |
5. Dosyanın Var Olup Olmadığını Kontrol Etme
file_exists()
belirtilen bir dosyanın veya dizinin var olup olmadığını kontrol etmek için kullanılır. Tek bir parametre alır: kontrol edilecek dosyanın veya dizinin yolu. Eğer dosya veya dizin mevcutsa true, aksi takdirde false döndürür.
1 2 3 4 5 6 7 | <?php if (file_exists("ornek.txt")) { echo "Dosya mevcut."; } else { echo "Dosya bulunamadı."; } ?> |