fread

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

freadDosyayı ikil kipte okur

Açıklama

fread(resource$dt, int$uzunluk): string|false

fread() işlevi, dt dosya tanıtıcısı ile belirtilen dosya akımından uzunluk bayta kadar veri okur. Okuma işlemi aşağıdaki koşullardan biri sağlanır sağlanmaz durur:

  • uzunluk bayt okununca.
  • Dosya sonuna ulaşılınca.
  • Bir paket kullanılabilir hale gelince veya soket zaman aşımına uğrayınca (ağ akımları için).
  • Eğer akım arabelleğe alınmışsa ve düz bir dosyaya ait değilse, en fazla yığıt boyutuna (genellikle 8192) eşit sayıda bayta kadar bir okuma yapılır; önceden arabelleğe alınan verilere bağlı olarak, döndürülen verilerin boyutu yığıt boyutundan daha büyük olabilir.

Bağımsız Değişkenler

dt

Bir dosya tanıtıcısı. Genellikle fopen() kullanılarak oluşturulur.

uzunluk

Okunacak azami bayt sayısı.

Dönen Değerler

Hata durumunda false aksi takdirde okunan dizge döner.

Örnekler

Örnek 1 - Basit bir fread() örneği

<?php
// bir dosyanın içeriğini bir dizge olarak okuyalım
$dosya = "/usr/local/birmetin.txt";
$dt = fopen($dosya, "r");
$içerik = fread($dt, filesize($dosya));
fclose($dt);
?>

Örnek 2 -İkil fread() örneği

Uyarı

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

<?php
$dosya
= "c:\\files\\birresim.gif";
$dt = fopen($dosya, "rb");
$içerik = fread($dt, filesize($dosya));
fclose($dt);
?>

Örnek 3 - Uzak fread() örnekleri

Uyarı

Okuma işlemi sıradan bir dosyadan değil de popen() ve fsockopen() işlevinden veya uzak dosyalar okunurken dönen akımlardan yapılıyorsa bir paket kullanılabilir hale gelince okuma işlemi durur. Yani, veriyi aşağıdaki örnekte gösterildiği gibi parçalar halinde toplamalısınız.

<?php
$dt
= fopen("http://www.example.com/", "rb");
$içerik = stream_get_contents($dt);
fclose($dt);
?>
<?php
$dt
= fopen("http://www.example.com/", "rb");
if (
FALSE === $dt) {
exit(
"URL'ye akım açılamadı");
}

$içerik = '';

while (!
feof($dt)) {
$içerik .= fread($dt, 8192);
}
fclose($dt);
?>

Notlar

Bilginize:

İstediğiniz bir dosyanın içeriğini bir dizge olarak almaksa, yukarıdaki koddan çok daha iyi başarım sağlayan file_get_contents() işlevini kullanın.

Bilginize:

fread() işlevinin mevcut dosya konumundan okuduğuna dikkat edin. Dosya konumlayıcının mevcut konumunu öğrenmek için ftell(), konumu dosyanın başına taşımak için rewind()işlevini kullanın.

Ayrıca Bakınız

  • fwrite() - Dosyaya ikil kipte yazar
  • 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
  • fgets() - Dosya tanıtıcısından bir satır döndürür
  • fgetss() - Dosya tanıtıcısından bir satırı HTML etiketlerinden arındırarak döndürür
  • fscanf() - Bir dosyadaki girdiyi belli bir biçeme göre çözümler
  • file() - Dosya içeriğinin tamamını bir diziye okur
  • fpassthru() - Bir dosya tanıtıcısında kalan verinin tamamını çıktılar
  • fseek() - Dosya tanıtıcısında konumu bir yerden başka bir yere taşır
  • ftell() - Dosya okuma/yazma konumlayıcının mevcut konumu ile döner
  • rewind() - Bir dosya tanıtıcısında konumu başa taşır
  • unpack() - Paketlenmiş bir ikil dizgeden verileri ayrıştırır
To Top