文章

PHP - 檔案操作


課程簡介

檔案操作是 PHP 強大的功能之一,能讀取、寫入和管理伺服器上的檔案資料。本課程將介紹檔案的開啟與關閉、讀取與寫入、檔案刪除,以及常見的檔案操作函式。


檔案操作基本概念

1. 開啟與關閉檔案

使用 fopen() 開啟檔案,並指定操作模式。

  • 常見模式
    • r:以只讀模式開啟。
    • w:以只寫模式開啟,若檔案不存在則新建,若檔案存在則清空內容。
    • a:以追加模式開啟,若檔案不存在則新建。

範例:

1
2
3
4
5
6
7
8
9
<?php
$file = fopen("example.txt", "w");
if ($file) {
    echo "檔案已成功開啟。";
    fclose($file);
} else {
    echo "無法開啟檔案。";
}
?>

2. 讀取檔案

使用 fread()

從開啟的檔案中讀取指定大小的資料。

1
2
3
4
5
6
7
8
<?php
$file = fopen("example.txt", "r");
if ($file) {
    $content = fread($file, filesize("example.txt"));
    echo "檔案內容:<br>" . nl2br($content);
    fclose($file);
}
?>

使用 file_get_contents()

讀取整個檔案的內容。

1
2
3
4
<?php
$content = file_get_contents("example.txt");
echo "檔案內容:<br>" . nl2br($content);
?>

3. 寫入檔案

使用 fwrite()

將資料寫入檔案。

1
2
3
4
5
6
7
8
<?php
$file = fopen("example.txt", "w");
if ($file) {
    fwrite($file, "Hello, PHP 檔案操作!");
    fclose($file);
    echo "內容已成功寫入檔案。";
}
?>

使用 file_put_contents()

寫入資料到檔案,會覆蓋原內容。

1
2
3
4
<?php
file_put_contents("example.txt", "Hello, PHP 檔案操作!");
echo "內容已成功寫入檔案。";
?>

4. 檔案刪除

使用 unlink() 刪除檔案。

1
2
3
4
5
6
7
<?php
if (unlink("example.txt")) {
    echo "檔案已刪除。";
} else {
    echo "無法刪除檔案。";
}
?>

5. 檢查檔案狀態

  • file_exists():檢查檔案是否存在。
  • filesize():獲取檔案大小(字節)。
  • is_readable() / is_writable():檢查檔案是否可讀/可寫。

範例:

1
2
3
4
5
6
7
<?php
if (file_exists("example.txt")) {
    echo "檔案存在,大小為:" . filesize("example.txt") . " 字節。";
} else {
    echo "檔案不存在。";
}
?>

6. 檔案指標操作

  • fseek():移動檔案指標。
  • ftell():獲取檔案指標的當前位置。
  • rewind():將檔案指標移回到開頭。

範例:

1
2
3
4
5
6
7
8
9
<?php
$file = fopen("example.txt", "r");
if ($file) {
    echo "當前指標位置:" . ftell($file) . "<br>";
    fseek($file, 5);
    echo "移動後的指標位置:" . ftell($file);
    fclose($file);
}
?>

教學練習

練習 1:建立與寫入檔案

建立一個名為 test.txt 的檔案,並寫入文字 “這是 PHP 檔案操作的範例。”。


練習 2:讀取檔案內容

讀取 test.txt 的內容並顯示在網頁上。


練習 3:刪除檔案

建立按鈕,點擊後刪除指定檔案,並在刪除後顯示訊息。


教學重點

  • 掌握檔案的開啟、讀取與寫入操作。
  • 熟悉 PHP 提供的便捷函式(如 file_get_contentsfile_put_contents)。
  • 理解如何檢查檔案狀態與操作檔案指標。

是否需要進一步講解資料夾操作(如建立、刪除資料夾)或檔案上傳處理?

本文章以 CC BY 4.0 授權