(PHP 4, PHP 5, PHP 7)
fread — Dosyayı ikil kipte okur
$dt
, int $uzunluk
)
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.
dt
Bir dosya tanıtıcısı. Genellikle fopen() kullanılarak oluşturulur.
uzunluk
Okunacak azami bayt sayısı.
Hata durumunda FALSE
aksi takdirde okunan dizge döner.
Ö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
İ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.
<?php
$dosya = "c:\\files\\birresim.gif";
$dt = fopen($dosya, "rb");
$içerik = fread($dt, filesize($dosya));
fclose($dt);
?>
Örnek 3 - Uzak fread() örnekleri
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
// PHP 5 ve sonrası için
$dt = fopen("http://www.example.com/", "rb");
$içerik = stream_get_contents($dt);
fclose($dt);
?>
<?php
$dt = fopen("http://www.example.com/", "rb");
$içerik = '';
while (!feof($dt)) {
$içerik .= fread($dt, 8192);
}
fclose($dt);
?>
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.