fclose() ve dosya kapatma
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
-
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.
-
Tanıtıcıyı kapat
$closed = fclose(____);Cevabı göster
$closed = fclose($handle); -
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