PHP - 文件与 I/O



本章将解释以下与文件相关的函数:

  • 打开文件
  • 读取文件
  • 写入文件
  • 关闭文件

打开和关闭文件

PHP 的 fopen() 函数用于打开文件。它需要两个参数,首先是文件名,然后是操作模式。

文件模式可以指定为此表中的六个选项之一。

序号 模式及用途
1

r

仅打开文件以供读取。

将文件指针置于文件开头。

2

r+

打开文件以供读取和写入。

将文件指针置于文件开头。

3

w

仅打开文件以供写入。

将文件指针置于文件开头。

并将文件截断为零长度。如果文件不存在

则尝试创建文件。

4

w+

仅打开文件以供读取和写入。

将文件指针置于文件开头。

并将文件截断为零长度。如果文件不存在

则尝试创建文件。

5

a

仅打开文件以供写入。

将文件指针置于文件末尾。

如果文件不存在则尝试创建文件。

6

a+

仅打开文件以供读取和写入。

将文件指针置于文件末尾。

如果文件不存在则尝试创建文件。

如果尝试打开文件失败,则 fopen 返回 false,否则返回 文件指针,该指针用于进一步读取或写入该文件。

对打开的文件进行更改后,务必使用 fclose() 函数关闭它。fclose() 函数需要一个文件指针作为其参数,然后在关闭成功时返回 true,如果失败则返回 false

读取文件

使用 fopen() 函数打开文件后,可以使用名为 fread() 的函数读取它。此函数需要两个参数。这些参数必须是文件指针和以字节表示的文件长度。

可以使用 filesize() 函数查找文件长度,该函数以文件名作为参数,并返回以字节表示的文件大小。

因此,以下是使用 PHP 读取文件所需的步骤。

  • 使用 fopen() 函数打开文件。

  • 使用 filesize() 函数获取文件长度。

  • 使用 fread() 函数读取文件内容。

  • 使用 fclose() 函数关闭文件。

示例

以下示例将文本文件的内容分配给一个变量,然后在网页上显示这些内容。

<html>
<head>
   <title>Reading a file using PHP</title>
</head>
<body>
   <?php
      $filename = "tmp.txt";
      $file = fopen( $filename, "r" );

      if( $file == false ) {
         echo ( "Error in opening file" );
         exit();
      }

      $filesize = filesize( $filename );
      $filetext = fread( $file, $filesize );
      fclose( $file );

      echo ( "File size : $filesize bytes" );
      echo ( "<pre>$filetext</pre>" );
   ?>
</body>
</html>

它将产生以下结果:

Reading File

写入文件

可以使用 PHP 的 fwrite() 函数写入新文件或将文本追加到现有文件。此函数需要两个参数,指定 文件指针和要写入的数据字符串。可选地,可以包含第三个整型参数以指定要写入的数据长度。如果包含第三个参数,则写入将在达到指定的长度后停止。

示例

以下示例创建一个新的文本文件,然后在其中写入一个简短的文本标题。关闭此文件后,使用 file_exist() 函数确认其是否存在,该函数以文件名作为参数

<?php
   $filename = "/home/user/guest/newfile.txt";
   $file = fopen( $filename, "w" );
   
   if( $file == false ) {
      echo ( "Error in opening new file" );
      exit();
   }
   fwrite( $file, "This is  a simple test\n" );
   fclose( $file );
?>
<html>
<head>
   <title>Writing a file using PHP</title>
</head>
<body>
   <?php
      $filename = "newfile.txt";
      $file = fopen( $filename, "r" );

      if( $file == false ) {
         echo ( "Error in opening file" );
         exit();
      }

      $filesize = filesize( $filename );
      $filetext = fread( $file, $filesize );

      fclose( $file );

      echo ( "File size : $filesize bytes" );
      echo ( "$filetext" );
      echo("file name: $filename");
   ?>
</body>
</html>

它将产生以下结果:

Writing File

我们已经在 PHP 文件系统函数 章中介绍了所有与文件输入和输出相关的函数。

广告