PHP 文件系统 fread() 函数



PHP 文件系统 fread() 函数用于从打开的文件中读取数据,此函数可以在文件末尾或达到指定长度时停止,以先到者为准。此函数可以返回读取的字符串或在失败时返回 false。

fread() 函数可以从句柄引用的文件指针中读取最多 length 个字节。

语法

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

string fread ( resource $handle , int $length )

参数

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

序号 参数及描述
1

handle(必需)

这是您要从中读取文件的指针。

2

length(必需)

要从文件中读取的字节数。

返回值

它返回读取的字符串或在失败时返回 FALSE。

PHP 版本

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

示例

在下面的 PHP 示例中,我们将使用 PHP 文件系统 fread() 函数读取指定长度的文件内容。

<?php
   // Assign the file path here
   $filename = "/PhpProject/sample.txt";

   // Open the file in reading mode
   $handle = fopen($filename, "r");

   // echo the reading content using fread()
   echo fread($handle, "30");
   
   //Close the file
   fclose($handle);
?>

输出

以下是以上代码的输出:

Tutorialspoint
Tutorix
Hello

示例

此示例代码首先打开一个名为“sample.txt”的文件,然后使用 fread() 和 filesize() 函数读取其所有内容,然后将内容打印到屏幕上。

<?php
   $filename = "/PhpProject/sample.txt";
   $file = fopen($filename, "r");
   
   $contents = fread($file, filesize($filename));
   echo $contents;
   
   fclose($file);
?>

输出

以下是以上 PHP 代码的输出:

Tutorialspoint
Tutorix
Hello Tutorialspoint!!!!

示例

现在假设您的代码无法打开和读取指定的文件,因为文件不存在或您没有访问权限。那么,您如何像下面的 PHP 代码一样处理这种情况呢?

<?php
   // Open the file in read mode
   $file = fopen("/PhpProject/myfile.txt", "r");

   // Check if the file opened successfully
   if ($file) {
      // Read 10 bytes from the file
      $content = fread($file, 10);

      // Check if fread was successful
      if ($content !== false) {
         // Display the content
         echo "Read content: " . $content;
      } else {
         echo "Failed to read from the file.";
      }

      // Close the file
      fclose($file);
   } else {
      echo "Failed to open the file.";
   }
?> 

输出

这将产生以下结果:

Failed to open the file.

示例

以下是一个示例,它演示了如何在 fread() 函数的帮助下读取二进制文件的一部分。我们还使用了 bin2hex() 函数,该函数将二进制数据转换为其十六进制形式。

<?php
   // Open the binary file in read mode
   $file = fopen("example.bin", "rb");

   // Check if the file opened successfully
   if ($file) {
      // Read 20 bytes from the file
      $content = fread($file, 20);

      // Check if fread was successful
      if ($content !== false) {
         // Display the content in hexadecimal format
         echo "Read content: " . bin2hex($content);
      } else {
         echo "Failed to read from the file.";
      }

      // Close the file
      fclose($file);
   } else {
      echo "Failed to open the file.";
   }
?> 

输出

这将生成以下结果:

Read content: 48656c6c6f20576f726c6421a1b2c3d4e5f6a7b8c9da

注意

  • 验证文件始终存在且可访问。
  • 在使用 fread() 之前,请确保 fopen() 成功。
  • 为了优雅地处理错误,请处理 fread() 返回的 false 结果。
  • fread() 可以与二进制文件和文本文件一起使用,因为它可以读取原始二进制数据。

总结

当您只需要将文件的特定部分读取到内存中而不是整个文件时,fread() 函数非常有用。

php_function_reference.htm
广告