CodeBlanks Logo Icon CodeBlanks

fopen() ile dosya açma

PHP kursu · Orta seviye · Ders 72/115

fopen() ile dosyayı farklı modlarda (r, w, a) açmayı öğrenirsin.

fopen() ile dosya açma

file_get_contents() tüm dosyayı tek seferde okur; ama bazen dosyayı adım adım, parça parça işlemek istersin. Bunun için önce fopen() ile dosyayı açar, sonra tanıtıcı (handle) üzerinden okur ya da yazarsın.

Örnek: $handle = fopen('veri.txt', 'r'); satırı veri.txt dosyasını okuma modunda açar ve bir tanıtıcı döndürür. Bu tanıtıcı, sonraki okuma ya da yazma işlemlerinde kullanılır.

fopen() başarısız olursa false döner. Bu yüzden tanıtıcıyı kullanmadan önce kontrol etmek iyi bir alışkanlıktır.

Yaygın dosya modları: r, w, a

fopen() üç temel mod alır:

  • 'r' — okuma modu. İmleç baştadır, dosya değiştirilemez.
  • 'w' — yazma modu. Dosya yoksa oluşturulur, varsa içi boşaltılır (truncate) ve imleç baştadır.
  • 'a' — ekleme modu (append). Dosya yoksa oluşturulur, varsa imleç sondadır; mevcut içerik korunur.

Yanlış mod seçmek veri kaybına yol açabilir. Örneğin 'w' ile açtığın bir dosyanın eski içeriği anında silinir. Bu yüzden modu bilinçli seçmek önemlidir.

Uygulama Dosyayı okuma modunda aç

Önce file_put_contents() ile veri.txt dosyasına 'içerik' yaz (hazır kısım). Sonra fopen() ile dosyayı 'r' modunda aç ve tanıtıcıyı $handle değişkenine ata. Tanıtıcı doğru geldiyse echo ile bir mesaj yaz.

Örnek çözümü göster
$handle = fopen(__DIR__ . '/veri.txt', 'r'); yaz, sonra if ($handle) { echo 'Dosya açıldı'; } ile kontrol et.
Örnek çözüm:
<?php
// Test için dosya oluştur
file_put_contents(__DIR__ . '/veri.txt', 'içerik');

// Dosyayı okuma modunda aç
$handle = fopen(__DIR__ . '/veri.txt', 'r');

// Açıldıysa mesaj yaz
if ($handle) {
    echo 'Dosya açıldı';
}

Kendini test et

  1. Hangi mod dosyayı yalnızca okumak için açar?

    • 'w' modu
    • 'a' modu
    • 'r' modu
    • 'x' modu
    Cevabı göster

    'r' modu — Doğru. 'r' modu dosyayı yalnızca okumak için açar; yazma yapılamaz.

  2. Dosyayı okuma modunda aç

    $handle = fopen('veri.txt', ____);
    Cevabı göster
    $handle = fopen('veri.txt', 'r');
  3. Dosya modlarını eşleştir

    'r' modu
    Yalnızca okuma
    'w' modu
    İçi boşaltıp yazma
    'a' modu
    Sona ekleme
    fopen()
    Dosyayı açar

Orta seviye bölümündeki tüm dersler