CodeBlanks Logo Icon CodeBlanks

fclose() ve dosya kapatma

PHP kursu · Orta seviye · Ders 74/115

fclose() ile dosya tanıtıcısını kapatmayı ve kaynak yönetimini öğrenirsin.

fclose() ile dosyayı kapatma

Bir dosyayı fopen() ile açtıktan sonra işin bitince tanıtıcıyı fclose() ile kapatırsın. Bu, dosyaya yazdığın verinin diske yazılmasını ve sistem kaynaklarının serbest bırakılmasını sağlar.

Örnek: fclose($handle); satırı tanıtıcıyı kapatır. Kapatma başarılıysa true, değilse false döner.

PHP betiği bitince tüm açık tanıtıcıları otomatik kapatır. Yine de açık tanıtıcıyı elle kapatmak iyi bir alışkanlıktır; özellikle uzun süren betiklerde kaynak sızıntısını önler.

Kaynak yönetimi ve sızıntı önleme

Açık bir tanıtıcı, arka planda bir işletim sistemi kaynağı tutar. Çok sayıda dosyayı açıp kapatmazsan, sunucu eşzamanlı tanıtıcı sınırına çarpabilir ve yeni açılışlar başarısız olabilir.

Tipik desen şudur: fopen ile aç, fwrite ya da fread ile çalış, sonra fclose ile kapat. Bu sıraya uyulduğunda hem veri diske güvenle yazılır hem de kaynak sızıntısı olmaz.

Büyük günlük dosyalarında ya da döngü içinde dosya açan betiklerde bu sıraya dikkat etmek özellikle önemlidir.

Uygulama Aç, yaz, kapat

veri.txt dosyasını fopen() ile 'w' modunda aç ve tanıtıcıyı $handle değişkenine ata. fwrite() ile bir dize yaz. Ardından fclose() ile tanıtıcıyı kapat. Son olarak echo ile bir mesaj yaz.

Örnek çözümü göster
fwrite($handle, 'Tamam'); fclose($handle); echo 'Kapatıldı'; sırayla yaz.
Örnek çözüm:
<?php
// Dosyayı yazma modunda aç
$handle = fopen(__DIR__ . '/veri.txt', 'w');

// 'Tamam' yaz
fwrite($handle, 'Tamam');

// Tanıtıcıyı kapat
fclose($handle);

// Mesaj yaz
echo 'Kapatıldı';

Kendini test et

  1. fopen ile açtığın tanıtıcıyı neden kapatmalısın?

    • Kapatmazsan PHP hata verir ve betik durur
    • fclose çağrısı yapmazsan dosya silinir
    • Kapatma sadece okuma modunda zorunludur, yazmada değil
    • fwrite ile yazılanlar diske işlenir, sistem kaynakları serbest kalır
    Cevabı göster

    fwrite ile yazılanlar diske işlenir, sistem kaynakları serbest kalır — Doğru. fclose yazıları diske işler ve tanıtıcının tuttuğu kaynakları serbest bırakır.

  2. Tanıtıcıyı kapat

    $closed = fclose(____);
    Cevabı göster
    $closed = fclose($handle);
  3. fclose ve kaynak kavramlarını eşleştir

    fclose()
    Tanıtıcıyı kapatır
    true dönüş
    Kapatma başarılı
    Açık tanıtıcı
    Kaynak tutar
    Betik sonu
    PHP otomatik kapatır

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