Filesystem 函数
PHP Manual

readfile

(PHP 4, PHP 5)

readfile输出一个文件

说明

int readfile ( string $filename [, bool $use_include_path [, resource $context ]] )

读入一个文件并写入到输出缓冲。

返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @ readfile() 形式调用,否则会显示错误信息。

Tip

如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见 fopen()。各种 wapper 的不同功能请参见 Supported Protocols and Wrappers,注意其用法及其可提供的预定义变量。

如果也想在 include_path 中搜索文件,可以使用可选的第二个参数并将其设为 TRUE

Note: 在 PHP 5.0.0 中增加了 对上下文(Context)的支持。 有关 上下文(Context) 的说明参见 Streams

参见 fpassthru()file()fopen()includerequirevirtual()file_get_contents()Supported Protocols and Wrappers

参数

filename

The filename being read.

use_include_path

You can use the optional second parameter and set it to TRUE, if you want to search for the file in the include_path, too.

context

A context stream resource.

返回值

Returns the number of bytes read from the file. If an error occurs, FALSE is returned and unless the function was called as @ readfile(), an error message is printed.

范例

Example #1 Forcing a download using readfile()

<?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('Content-Transfer-Encoding: binary');
    
header('Expires: 0');
    
header('Cache-Control: must-revalidate');
    
header('Pragma: public');
    
header('Content-Length: ' filesize($file));
    
ob_clean();
    
flush();
    
readfile($file);
    exit;
}
?>

以上例程的输出类似于:

Open / Save dialogue

注释

Tip

如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见 fopen()。各种 wapper 的不同功能请参见 Supported Protocols and Wrappers,注意其用法及其可提供的预定义变量。

Note: 在 PHP 5.0.0 中增加了 对上下文(Context)的支持。 有关 上下文(Context) 的说明参见 Streams

参见


Filesystem 函数
PHP Manual