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 檔案系統函式 章中介紹了所有與檔案輸入和輸出相關的函式。

廣告