CodeBlanks Logo Icon CodeBlanks

file_put_contents() ile yazma

PHP kursu · Orta seviye · Ders 71/115

file_put_contents() ile bir dizeyi dosyaya yazmayı öğrenirsin.

file_put_contents() ile dosyaya yazma

Bir dizeyi dosyaya yazmak için file_put_contents() fonksiyonunu kullanırsın. fonksiyon, dosya yolunu ve yazılacak içeriği olmak üzere iki parametre alır.

Örnek: file_put_contents('kayit.txt', 'Merhaba'); satırı kayit.txt dosyasına 'Merhaba' yazar. Dosya yoksa oluşturulur; varsa içeriği üstüne yazılır (overwrite).

fonksiyon, yazılan byte sayısını döndürür. Bu değer false ise yazma başarısız olmuş demektir.

FILE_APPEND bayrağı ile ekleme

Dosyanın üzerine yazmak yerine sonuna yeni içerik eklemek istersen, üçüncü parametre olarak FILE_APPEND bayrağını verirsin.

Örnek: file_put_contents('log.txt', 'Yeni kayıt' . PHP_EOL, FILE_APPEND); çağrısı log.txt dosyasının sonuna 'Yeni kayıt' satırını ekler. Mevcut içerik korunur. PHP_EOL satır sonu karakteridir (Linux'ta \n).

Bu desen günlük (log) dosyaları için çok uygundur: her yeni kayıt dosyanın sonuna eklenir, eski kayıtlar silinmez.

Uygulama Dosyaya yaz ve geri oku

kayit.txt dosyasına file_put_contents() ile 'Kayıt eklendi' dizesini yaz. Ardından file_get_contents() ile dosyayı oku ve echo ile ekrana yaz. İki fonksiyonun da yol parametresinde __DIR__ kullan.

Örnek çözümü göster
Önce file_put_contents(__DIR__ . '/kayit.txt', 'Kayıt eklendi'); yaz, sonra echo file_get_contents(__DIR__ . '/kayit.txt'); çağrısı yap.
Örnek çözüm:
<?php
// Dosyaya yaz
file_put_contents(__DIR__ . '/kayit.txt', 'Kayıt eklendi');

// Dosyayı oku ve ekrana yaz
echo file_get_contents(__DIR__ . '/kayit.txt');

Kendini test et

  1. file_put_contents('a.txt', 'x') çağrılırsa ve a.txt zaten varsa ne olur?

    • Dosyanın içeriği 'x' ile değiştirilir (üzerine yazılır)
    • 'x' dize dosyanın sonuna eklenir
    • PHP hata verir ve dosyaya dokunmaz
    • İçerik 'x' yerine 'xx' olarak yazılır
    Cevabı göster

    Dosyanın içeriği 'x' ile değiştirilir (üzerine yazılır) — Doğru. file_put_contents() varsayılan olarak dosyanın üzerine yazar; eski içerik kaybolur.

  2. Kaydı dosyanın sonuna ekle

    file_put_contents('log.txt', $msg . PHP_EOL, ____);
    Cevabı göster
    file_put_contents('log.txt', $msg . PHP_EOL, FILE_APPEND);
  3. file_put_contents kavramlarını eşleştir

    file_put_contents()
    Dizeyi dosyaya yazar
    İlk parametre
    Dosya yoludur
    İkinci parametre
    Yazılacak içeriktir
    FILE_APPEND
    Sona ekleme yapar

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