PHP - 刪除檔案



PHP 沒有 delete 關鍵字或 delete() 函式。它提供 unlink() 函式,呼叫該函式時,會從檔案系統中刪除檔案。它類似於 Unix/C 的 unlink 函式。

如果刪除操作無法完成,PHP 將返回 false 並顯示 E_WARNING 訊息。

unlink(string $filename, ?resource $context = null): bool

unlink() 函式的必需字串引數是一個字串,它引用要刪除的檔案。

示例

以下程式碼演示了 unlink() 函式的簡單用法:

<?php
   $file = "my_file.txt";

   if (unlink($file)) {
      echo "The file was deleted successfully.";
   } else {
      echo "The file could not be deleted.";
   }
?>

刪除指向檔案的符號連結

unlink() 函式也可以刪除指向檔案的符號連結。但是,刪除符號連結不會刪除原始檔案。符號連結是現有檔案的快捷方式。

在 Windows 中,以管理員許可權開啟命令提示符,並使用 mlink 命令和 /h 開關建立指向檔案的符號連結。(/j 開關用於指向資料夾的符號連結)

mklink /h hellolink.lnk hello.txt
Hardlink created for hellolink.lnk <<===>> hello.txt

在 Ubuntu Linux 中,要建立指向檔案的符號連結,可以使用以下命令:

ln -s /path/to/original_file /path/to/symlink

要建立指向目錄的符號連結,可以使用以下命令:

ln -s /path/to/original_directory /path/to/symlink

在 PHP 中,還有一個 symlink() 函式用於此目的。

symlink(string $target, string $link): bool

示例

使用以下程式碼建立一個符號連結:

<?php
   $target = 'hello.txt';
   $link = 'hellolink.lnk';
   symlink($target, $link);

   echo readlink($link);
?>

現在刪除上面建立的符號連結:

unlink("hellolink.lnk");

如果檢查當前工作目錄,符號連結將被刪除,而原始檔案保持不變。

如何在 PHP 中重新命名檔案

您可以使用作業系統控制檯的相應命令來更改現有檔案的檔名。例如,Linux 終端中的“mv 命令”或 Windows 命令提示符中的“rename 命令”可以幫助您更改檔名。

但是,要以程式設計方式重新命名檔案,PHP 的內建庫包含一個 rename() 函式。

以下是 rename() 函式的 語法

rename(string $from, string $to, ?resource $context = null): bool

$from$to 字串都是檔名,分別代表現有檔案和新檔名。rename() 函式嘗試將 $from 重新命名為 $to,如有必要,可在目錄之間移動它。

如果您正在重新命名一個 檔案,並且 $to 已經存在,則它將被覆蓋。如果您正在重新命名一個 目錄,並且 $to 存在,則此函式將發出 警告

要將“hello.txt”重新命名為“test.txt”:

<?php
   rename("hello.txt", "test.txt");
?>

您還可以採用一種稍微間接的方法來重新命名檔案。複製現有檔案,然後刪除原始檔案。這也會將“hello.txt”重新命名為“test.txt”:

copy("hello.txt", "test.txt");
unlink("hello.txt");
廣告