(PHP 4, PHP 5, PHP 7, PHP 8)
fwrite — Dosyaya ikil kipte yazar
fwrite() işlevi, veri
dizgesini dosya tanıtıcısı akım
ile belirtilen dosya akımına yazar.
akım
Bir dosya tanıtıcısı. Genellikle fopen() kullanılarak oluşturulur.
veri
Akıma yazılacak dizge.
uzunluk
uzunluk
bağımsız değişkeni bir tamsayı ise yazma işlemi uzunluk
bayt yazıldıktan sonra veya dizge
dizgesinin sonuna gelindiğinde durur (hangisi önce vuku bulursa).
fwrite() işlevi bir hata oluşmamışsa yazılan baytların sayısını, aksi takdirde false
döndürür.
fwrite() başarısızlık durumunda E_WARNING
çıktılar.
Sürüm: | Açıklama |
---|---|
8.0.0 | uzunluk artık null olabiliyor. |
Örnek 1 - Basit bir fwrite() örneği
<?php
$dosya = 'dnm.txt';
$veri = "Bunu dosyaya ekleyelim\n";
// Önce dosya mevcut mu ve yazılabilir mi, bakalım.
if (is_writable($dosya)) {
// Örneğimizde $dosya'yı ekleme kipinde açıyoruz.
Bilginize:
Bir ağ akımına yazarken, dizgenin tamamı yazılamadan akım kapanabilir. Bu durum fwrite() dönüş değerinden saptanabilir:
<?php
function fwrite_stream($fp, $string) {
for ($written = 0; $written < strlen($string); $written += $fwrite) {
$fwrite = fwrite($fp, substr($string, $written));
if ($fwrite === false) {
return $written;
}
}
return $written;
}
?>
Bilginize:
İkil ve metin dosyaları farklı ele alan sistemlerde (Windows gibi) dosya açılırken fopen() işlevinin kip bağımsız değişkenine 'b' harfi dahil edilmelidir.
Bilginize:
Eğer
akım
dosya sonuna ekleme kipinde açılmışsa (bazı sistemlerde ve dosya yerel dosya sisteminde olduğu süreceveri
uzunluğu dosya sisteminin blok boyunu aşmadığı takdirde) yazma işlemi atomiktir. Yani, fwrite() işlevini çağırmadan önce dosya tanıtıcısını flock() ile kilitlemeye gerek yoktur; tüm veri kesintiye uğramaksızın yazılacaktır.
Bilginize:
Eğer dosya tanıtıcısında peşpeşe iki yazma yaparsanız, her iki veri de dosyanın sonuna eklenir:
<?php
$dt = fopen('veri.txt', 'w');
fwrite($dt, '1');
fwrite($dt, '23');
fclose($dt);
// veri.txt dosyasının içeriği '123' değil '23' olacaktır.
?>