PHP
file_put_contents() ile yazma
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
-
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.
-
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);
-
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
Sıradaki ders: fopen() ile dosya açma