(PHP 4, PHP 5, PHP 7, PHP 8)
readfile — 輸出文件
$filename
, bool $use_include_path
= false
, resource $context
= ?): int讀取文件并寫入到輸出緩沖。
filename
要讀取的文件名。
use_include_path
想要在
include_path
中搜索文件,可使用這個(gè)可選的第二個(gè)參數(shù),設(shè)為 true
。
context
Stream 上下文(context) resource。
成功時(shí)返回從文件中讀入的字節(jié)數(shù), 或者在失敗時(shí)返回 false
失敗時(shí)拋出E_WARNING
警告。
示例 #1 使用 readfile() 強(qiáng)制下載
<?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;
}
?>
以上例程的輸出類似于:
注意:
readfile() 自身不會(huì)導(dǎo)致任何內(nèi)存問(wèn)題。 如果出現(xiàn)內(nèi)存不足的錯(cuò)誤,使用 ob_get_level() 確保輸出緩存已經(jīng)關(guān)閉。
如已啟用fopen 包裝器,在此函數(shù)中, URL 可作為文件名。關(guān)于如何指定文件名詳見(jiàn) fopen()。各種 wapper 的不同功能請(qǐng)參見(jiàn) 支持的協(xié)議和封裝協(xié)議,注意其用法及其可提供的預(yù)定義變量。
上下文流(context stream) resource。