Php 简明教程

PHP - Files & I/O

本章将说明与文件相关的以下函数 −

  1. Opening a File

  2. Reading a File

  3. Writing a File

  4. Closing a File

Opening and Closing Files

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

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

Sr.No

Mode & Purpose

1

r 仅打开文件用于读取。将文件指针放在文件开头。

2

r+ 打开一个文件用于读写。将文件指针放在文件开头。

3

w 仅打开文件用于写入。将文件指针放在文件开头。并将文件截断为零长度。如果文件不存在,它将尝试创建一个文件。

4

w+ 仅打开文件用于读写。将文件指针放在文件开头。并将文件截断为零长度。如果文件不存在,它将尝试创建一个文件。

5

a 仅打开文件用于写入。将文件指针放在文件结尾。如果文件不存在,它将尝试创建一个文件。

6

a+ 仅打开文件用于读写。将文件指针放在文件结尾。如果文件不存在,它将尝试创建一个文件。

如果打开文件失败,则 fopen 返回 false 的值,否则它返回一个 file pointer ,用于进一步读取或写入该文件。

在对打开的文件进行更改后,使用 fclose() 函数将其关闭非常重要。 fclose() 函数需要一个文件指针作为其参数,然后在关闭成功时返回 true ,或者在关闭失败时返回 false

Reading a File

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

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

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

  1. 使用 fopen() 函数打开一个文件。

  2. 使用 filesize() 函数获取文件的长度。

  3. 通过 fread() 函数读取文件内容。

  4. 通过 fclose() 函数关闭文件。

Example

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

<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

Writing a File

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

Example

以下示例创建一个新文本文件,然后在其中写一个简短的文本标题。关闭此文件后,使用 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 File System Function 章节中文件输入和输出的所有函数。