PHP
fwrite() ve fread()
fwrite() ile dosyaya yazıp fread() ile okumayı öğrenirsin.
fwrite() ile tanıtıcıya yazma
Bir dosyayı fopen() ile açtıktan sonra, tanıtıcı üzerinden yazmak için fwrite() fonksiyonunu kullanırsın. fonksiyon, tanıtıcıyı ve yazılacak dizeyi parametre olarak alır.
Örnek: fwrite($handle, 'Merhaba'); satırı $handle tanıtıcısının gösterdiği dosyaya 'Merhaba' yazar. fonksiyon, yazılan byte sayısını döndürür.
Yazılan verinin diske gitmesi için tanıtıcıyı kapatmak gerekir. fclose'u sonraki derste ayrıntılı işleyeceğiz; şimdilik fwrite sonrası fclose($handle) çağrısı yaptığını bilmen yeterli.
fread() ile tanıtıcıdan okuma
Tanıtıcı üzerinden okuma yapmak için fread() fonksiyonunu kullanırsın. fonksiyon, tanıtıcıyı ve okunacak byte sayısını parametre olarak alır.
Örnek: $data = fread($handle, 5); satırı $handle tanıtıcısından 5 byte okur ve $data değişkenine atar. İmleç okunan kadar ilerler; bir sonraki fread kaldığı yerden devam eder.
Yazma modunda açtığın tanıtıcıdan hemen okuyamazsın; önce dosyayı kapatıp yeniden açman ya da fclose ile yazıyı diske yazdırman gerekir. Bu derste fwrite sonrası fclose yapıp sonra 'r' modunda yeniden açacağız.
Uygulama Yaz ve geri oku
mesaj.txt dosyasını fopen() ile 'w' modunda aç ve tanıtıcıyı $wr değişkenine ata. fwrite() ile dosyaya 'Selam' yaz ve fclose($wr) ile kapat. Sonra dosyayı 'r' modunda aç, tanıtıcıyı $rd değişkenine ata, fread() ile 5 byte oku, $data değişkenine ata ve echo ile ekrana yaz.
Örnek çözümü göster
fwrite($wr, 'Selam'); fclose($wr); yaz, sonra $data = fread($rd, 5); echo $data;.
Örnek çözüm:
<?php
// Yazma modunda aç
$wr = fopen(__DIR__ . '/mesaj.txt', 'w');
// 'Selam' yaz ve kapat
fwrite($wr, 'Selam');
fclose($wr);
// Okuma modunda aç
$rd = fopen(__DIR__ . '/mesaj.txt', 'r');
// 5 byte oku
$data = fread($rd, 5);
// Ekrana yaz
echo $data;
Kendini test et
-
fwrite($handle, 'abc') başarılı olursa ne döner?
- true ya da false
- Yazılan byte sayısı (3)
- Yazılan dizenin kendisi
- Dosya tanıtıcısı
Cevabı göster
Yazılan byte sayısı (3) — Doğru. fwrite() yazılan byte sayısını döndürür; 'abc' 3 byte olduğu için 3 döner.
-
fwrite çağrısını tamamla
$bytes = fwrite($handle, ____);
Cevabı göster
$bytes = fwrite($handle, 'Merhaba');
-
fwrite ve fread kavramlarını eşleştir
- fwrite()
- Tanıtıcıya yazar
- fread()
- Tanıtıcıdan okur
- İkinci parametre
- Dize ya da byte sayısı
- Dönüş değeri
- Byte sayısıdır
Sıradaki ders: fclose() ve dosya kapatma