(PHP 4, PHP 5, PHP 7)
fwrite — Dosyaya ikil kipte yazar
$dt
, string $dizge
[, int $uzunluk
] )
fwrite() işlevi, dizge dizgesini
dosya tanıtıcısı dt ile belirtilen dosya akımına
yazar.
dtBir dosya tanıtıcısı. Genellikle fopen() kullanılarak oluşturulur.
dizgeAkıma yazılacak dizge.
uzunluk
uzunluk değiştirgesi belirtilmişse yazma işlemi
uzunluk bayt yazıldıktan sonra veya
dizge dizgesinin sonuna gelindiğinde durur
(hangisi önce vuku bulursa).
uzunluk değiştirgesi belirtildiği takdirde magic_quotes_runtime
yapılandırma yönergesi yoksayılarak dizge
dizgesinde bölü çizgileri ayıklaması yapılmaz.
fwrite() işlevi bir hata oluşmamışsa yazılan baytların
sayısı ile aksi takdirde FALSE ile döner.
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) {
return $fwrite;
}
}
return $written;
}
?>
Bilginize:
İkil ve metin dosyaları farklı ele alan sistemlerde (Windows gibi) dosya açılırken fopen() işlevinin kip değiştirgesine 'b' harfi dahil edilmelidir.
Bilginize:
Eğer
dtdosya sonuna ekleme kipinde açılmışsa (bazı sistemlerde ve dosya yerel dosya sisteminde olduğu sürecedizgeuzunluğ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.
?>
Ö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.
// Konumlayıcı dosyanın sonunda olduğundan fwrite()
// $veri dizgesini dosyanın sonuna ekleyecektir.
if (!$dt = fopen($dosya, 'a')) {
echo "$dosya dosyası açılamadı";
exit;
}
// $veri'yi açılan dosyaya yazalım.
if (fwrite($dt, $veri) === FALSE) {
echo "$dosya dosyasına yazılamıyor";
exit;
}
echo "$dosya dosyasına '$veri' başarıyla yazıldı";
fclose($dt);
} else {
echo "$dosya dosyası yazılabilir değil";
}
?>