PHP 文件I/O

  • 包含文件

    本章将解释与文件相关的以下功能
    • 打开文件
    • 读一个文件
    • 写一个文件
    • 关闭文件
  • 打开和关闭文件

    PHP fopen()函数用于打开文件。它需要两个参数,第一个参数为文件名,第二个参数操作模式。文件模式可以指定为此表中的六个选项之一。
    模式 描述
    r 打开文件以供阅读。将文件指针放在文件的开头。
    r+ 打开文件进行读写。将文件指针放在文件的开头。
    w 打开文件仅供写入。将文件指针放在文件的开头。并将文件截断为零长度。如果文件没有然后它会尝试创建一个文件。
    w+ 打开文件以进行读写。将文件指针放在文件的开头。并将文件截断为零长度。如果文件没有然后它会尝试创建一个文件。
    a 打开文件仅供写入。将文件指针放在文件的末尾。如果文件不存在,则会尝试创建文件。
    a+ 打开文件以进行读写。将文件指针放在文件的末尾。如果文件不存在,则会尝试创建文件。
    如果尝试打开文件失败,则fopen返回false值,否则返回一个文件指针,用于进一步读取或写入该文件。在对打开的文件进行更改后,使用fclose()函数关闭它是很重要的。fclose()函数需要一个文件指针作为它的参数,成功关闭返回成功,否则false。
  • 读一个文件

    一旦使用fopen()函数打开文件,就可以使用名为fread()的函数读取它。此函数需要两个参数,文件指针和以字节表示的文件长度。可以使用filesize()函数找到文件长度,该函数将文件名作为参数,并返回以字节为单位表示的文件大小。
    以下是使用PHP读取文件所需的步骤。
    • 使用fopen()函数打开文件。
    • 使用filesize()函数获取文件的长度。
    • 使用fread()函数读取文件的内容。
    • 使用fclose()函数关闭文件。
    以下示例将文本文件的内容分配给变量,然后在网页上显示这些内容。
    <html>
    
       <head>
          <title>用PHP读取一个文件</title>
       </head>
       
       <body>
          
          <?php
             $filename = "tmp.txt";
             $file = fopen( $filename, "r" );
             
             if( $file == false ) {
                echo ( "打开文件出错" );
                exit();
             }
             
             $filesize = filesize( $filename );
             $filetext = fread( $file, $filesize );
             fclose( $file );
             
             echo ( "文件大小 : $filesize bytes" );
             echo ( "<pre>$filetext</pre>" );
          ?>
          
       </body>
    </html>
    
  • 写一个文件

    可以使用PHP fwrite()函数编写新文件或将文本附加到现有文件。此函数需要两个参数来指定文件指针和要写入的数据字符串。可选地,可以包括第三个整数参数以指定要写入的数据的长度。如果包含第三个参数,则写入将在达到指定长度后停止。
    以下示例创建一个新的文本文件,然后在其中写入一个短文本标题。关闭此文件后,使用file_exist()函数确认其存在,该函数将文件名作为参数
    <?php
            /*Linux 服务器使用文件路径方式*/
       //$filename = "/home/user/guest/newfile.txt";
       /*Window 使用文件路径方式*/
       $filename = "D:/web/newfile.txt";
       $file = fopen( $filename, "w" );
       
       if( $file == false ) {
          echo ( "打开文件失败!" );
          exit();
       }
       fwrite( $file, "这是一个简单的例子\n" );
       fclose( $file );
    ?>
    <html>
       
       <head>
          <title>用PHP写入一个文件</title>
       </head>
       
       <body>
          
          <?php
             /*新建一个文件*/
             $filename = "newfile.txt";
             $file = fopen( $filename, "r" );
             
             if( $file == false ) {
                echo ( "打开文件失败!" );
                exit();
             }
             
             $filesize = filesize( $filename );
             $filetext = fread( $file, $filesize );
             
             fclose( $file );
             
             echo ( "文件大小 : $filesize bytes" );
             echo ( "$filetext" );
             echo("文件名: $filename");
          ?>
          
       </body>
    </html>
    
    提示:这里简单的介绍了文件IO的知识,后面在文件系统章节,会全面的介绍这些知识。