PHP 文件系统 readfile() 函数



PHP 文件系统readfile()函数用于读取文件并将其写入输出缓冲区。此函数在成功时可以返回读取的字节数,或者在失败时返回false和错误。我们可以通过在函数名前添加“@”来隐藏错误输出。

如果在 php.ini 文件中启用了 fopen() 函数包装器,则可以使用 URL 作为此函数的文件名。

语法

以下是 PHP 文件系统readfile()函数的语法:

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

参数

以下是readfile()函数的必需和可选参数:

序号 参数和描述
1

$filename(必需)

要读取的文件。

2

$use_include_path(可选)

将此选项设置为 true 以在 include_path 中查找文件。include_path 可以在 php.ini 中指定。

3

$context(可选)

这是一个上下文流资源。上下文是一组可能更改流行为的设置。

返回值

readfile()函数在成功时返回从文件中读取的字节数,在失败时返回 FALSE。

PHP 版本

readfile()函数最初作为 PHP 4 核心的一部分引入,并且与 PHP 5、PHP 7 和 PHP 8 兼容。

示例

这是一个基本示例,用于演示如何使用 PHP 文件系统readfile()函数读取给定的文件。

首先将内容写入 sample.txt 文件中。以下是写入文件的内容。

Hello World!
Tutorialspoint
Tutorix
32

现在运行以下 PHP 代码以查看 readfile() 函数的结果:

<?php
   echo "Read the content of sample.txt file:";
   echo readfile("/PhpProject/sample.txt");
?>

输出

以下是以下代码的结果:

Read the content of sample.txt file:
Hello World!
Tutorialspoint
Tutorix
32

示例

以下是一个使用readfile()函数处理使用它时出现的错误的示例。

<?php
   $filename = "/PhpProject/testfile.txt";

   // Check if the file exists
   if (file_exists($filename)) {
      // Read and display the content of the file
      readfile($filename);
   } else {
      echo "File does not exist.";
   }
?> 

输出

这将产生以下结果:

File does not exist.

示例

以下是一个使用readfile()函数读取 .jpg 等不同文件格式的示例。

<?php
   $filename = "/PhpProjects/image.jpg";

   // Check if the file exists
   if (file_exists($filename)) {
      // Set the content type header to display the image
      header('Content-Type: image/jpeg');
      
      // Read and output the image file
      readfile($filename);
   } else {
      echo "File does not exist.";
   }
?> 

输出

这将生成以下输出:

This code will show the image on the screen specified in the filename.

示例

以下是一个使用readfile()函数下载文件并在设置标题以触发下载后的示例。

<?php
   $filename = "/PhpProjects/myfile.pdf";

   // Check if the file exists
   if (file_exists($filename)) {
       // Set headers to trigger a download
       header('Content-Description: File Transfer');
       header('Content-Type: application/octet-stream');
       header('Content-Disposition: attachment; filename="'.basename($filename).'"');
       header('Expires: 0');
       header('Cache-Control: must-revalidate');
       header('Pragma: public');
       header('Content-Length: ' . filesize($filename));
       
       // Read and output the file
       readfile($filename);
       echo "The file has been downloaded."
       exit;
   } else {
       echo "File does not exist.";
   }
?> 

输出

这将导致以下输出:

The file has been downloaded.

总结

readfile()方法是一个内置函数,用于读取给定的文件。它对于在网页上显示文件内容或允许文件下载非常有用。

php_function_reference.htm
广告