PHP 文件系统 fopen() 函数



PHP 文件系统fopen()函数用于打开文件或 URL。如果失败,它可能会返回 false 并在失败时返回错误。我们可以通过在函数名称前面添加“@”来隐藏错误输出。fopen()函数可以将由文件名指定的名为资源绑定到流。

语法

以下是 PHP 文件系统fopen()函数的语法 -

resource fopen ( string $filename , string $mode [, bool $use_include_path = FALSE [, resource $context ]] )

参数

以下是fopen()函数的必需和可选参数 -

序号 参数和描述
1

filename(必需)

要打开的文件的路径。

2

mode(必需)

要打开文件的模式,例如 - r、w、a、x、r+、w+、a+。

3

use_include_path(必需)

允许在 include_path 中包含搜索。默认情况下,它设置为 FALSE。

4

resource(必需)

一个资源,指定文件句柄的上下文。

返回值

如果文件成功打开,则返回一个资源句柄,否则在失败时返回 FALSE。

PHP 版本

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

示例

在下面的代码中,我们将看到 PHP 文件系统fopen()函数的基本用法,例如我们如何打开文件并读取该文件,以及如何在打开文件后写入文件。

<?php
   $file = fopen("/PhpProject/sample.txt", "r");
   $file = fopen("/PhpProject/index.php", "r");
   $file = fopen("/PhpProject/sample1.txt", "wb");
?>

示例

在下面的 PHP 代码中,我们将使用fopen()函数以读取模式 (“r”) 打开名为“myfile.txt”的文件。我们将使用 if-else 语句检查文件是否已打开。此外,我们使用 while 循环和 fgets()逐行读取文件,直到到达文件末尾。

<?php
   $file = fopen("/PhpProject/myfile.txt", "r");
   if ($file) {
      while (($line = fgets($file)) !== false) {
         echo $line;
      }
      fclose($file);
   } else {
      echo "Failed to open file.";
   }
?> 

输出

这将产生以下结果 -

This is a sample file.

示例

在此示例中,我们将使用fopen()以写入模式 w 打开或创建名为“newfile.txt”的文件。

<?php
   $file = fopen("newfile.txt", "w");
   if ($file) {
      fwrite($file, "Hello, world!");
      fclose($file);
      echo "Data written to file.";
   } else {
      echo "Failed to open file.";
   }
?> 

输出

这将导致以下结果 -

Data written to file.

示例

在此示例中,我们将使用fopen()以追加模式“a”打开或创建名为“log.txt”的文件。如果文件已成功打开或创建,我们将使用 fwrite()将字符串追加到文件。

<?php
   $file = fopen("log.txt", "a");
   if ($file) {
      fwrite($file, "New log entry");
      fclose($file);
      echo "New entry added to log file.";
   } else {
      echo "Failed to open file.";
   }
?> 

输出

这将生成以下结果 -

New entry added to log file.

注意

检查fopen()是否返回 false 对于正确处理问题非常重要。在完成任何文件操作后,始终使用 fclose()关闭文件句柄并释放资源。

总结

PHP 中的fopen()函数可用于打开文件和 URL。程序员可以借助此灵活的函数添加、读取和写入文件,以处理文件系统。

php_function_reference.htm
广告