fwrite

(PHP 4, PHP 5, PHP 7, PHP 8)

fwriteDosyaya ikil kipte yazar

Açıklama

fwrite(resource$akım, string$veri, ?int$uzunluk = null): int|false

fwrite() işlevi, veri dizgesini dosya tanıtıcısı akım ile belirtilen dosya akımına yazar.

Bağımsız Değişkenler

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).

Dönen Değerler

fwrite() işlevi bir hata oluşmamışsa yazılan baytların sayısını, aksi takdirde false döndürür.

Hatalar/İstisnalar

fwrite() başarısızlık durumunda E_WARNING çıktılar.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0uzunluk artık null olabiliyor.

Örnekler

Ö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.

Notlar

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ürece veri 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.
?>

Ayrıca Bakınız

  • fread() - Dosyayı ikil kipte okur
  • fopen() - Bir dosya veya URL'yi açar
  • fsockopen() - Bir internet veya Unix alan soketi bağlantısı açar
  • popen() - Bir süreç tanıtıcısı açar
  • file_get_contents() - Dosya içeriğinin tamamını bir dizge olarak döndürür
  • pack() - Veriyi ikil bir dizge halinde paketler
To Top