array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.readfile.php', 1 => 'readfile', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'Dosya Sistemi İşlevleri', ), 'prev' => array ( 0 => 'function.popen.php', 1 => 'popen', ), 'next' => array ( 0 => 'function.readlink.php', 1 => 'readlink', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/filesystem/functions/readfile.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
readfile — Bir dosyayı çıktılar
Bir dosyayı okuyup çıktı tamponuna yazar.
dosyaismi
Okunacak dosya.
include_path_kullan
Dosyanın include_path yolunda
da aranmasını istiyorsanız bu isteğe bağlı bağımsız değişkene true
atamalısınız.
bağlam
Akım bağlamı özkaynağı.
Herşey yolunda gitmişse dosyadan okunan baytların
sayısı, başarısızlık durumunda false
döner.
Başarısızlık durumunda bir
E_WARNING
çıktılanır.
Örnek 1 - readfile() kullanarak dosya indirmeyi zorlamak
<?php
$file = 'monkey.gif';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Bilginize:
readfile() kendi başına büyük dosyalar gönderirken bile herhangi bir bellek sorunu ortaya çıkmaz. Yetersiz bellek hatasıyla karşılaşırsanız, ob_get_level() kullanarak çıktı tamponlamasının kapalı olduğundan emin olun.
fopen sarmalayıcıları etkin kılınmışsa bu işlevde dosya ismi olarak bir URL belirtilebilir. Dosya isminin nasıl belirtilebileceği hakkında bilgi edinmek için fopen() işlevine bakılabilir. Sarmalayıcıların neler yapabildiği, kullanım bilgileri ve bunlar tarafından kullanılan öntanımlı değişkenler hakkında bilgi Desteklenen Protokoller ve Sarmalayıcılar bölümünde bulanabilir.