PHP – 建立目錄



計算機檔案儲存在本地儲存裝置(稱為驅動器)中,並以分層順序排列,其中目錄包含一個或多個檔案以及子目錄。作業系統 Windows、Linux 等中定義的相應 DOS 命令用於建立和管理目錄。

PHP 提供目錄管理函式來建立目錄、更改當前目錄和刪除特定目錄。

本章討論 PHP 中以下目錄函式的用法:

mkdir() 函式

mkdir() 函式建立一個新目錄,其路徑作為函式的引數之一給出。

mkdir(
   string $directory,
   int $permissions = 0777,
   bool $recursive = false,
   ?resource $context = null
): bool

引數

  • $directory − 第一個引數 $directory 是必需的。它是一個字串,包含要建立的新目錄的絕對路徑或相對路徑。

  • $permissions − 第二個引數 $permissions 是一個八進位制數,包含四個八進位制數字。第一個數字始終為零,第二個指定所有者的許可權,第三個指定所有者使用者組的許可權,第四個指定其他所有人的許可權。

每個數字都是每種許可權值的總和:

  • 1 = 執行許可權

  • 2 = 寫許可權

  • 4 = 讀許可權

$permissions 引數的預設值為0777,這意味著目錄建立時啟用了執行、寫入和讀取許可權。

請注意,在 Windows 作業系統上工作時,將忽略 $permissions 引數。

  • $recursive − 如果為 true,則還會建立指定目錄的任何父目錄,並使用相同的許可權。

  • $context − 此可選引數是流資源。

mkdir() 函式返回 true 或 false,指示函式是否已成功執行。

示例

以下是一些 mkdir() 函式的示例。

對 mkdir() 的以下呼叫在當前工作目錄中建立一個子目錄。點表示路徑是相對的。

$dir = "./mydir/";
mkdir($dir);

我們可以提供包含要建立的目錄的絕對路徑的字串引數。

$dir = "c:/newdir/";
mkdir($dir);

對 mkdir() 的以下呼叫包含當前目錄內的巢狀目錄結構,因為 $recursive 引數設定為 true。

$dirs = "./dir1/dir2/dir3/";
mkdir($dirs, 0777, true);

Windows 資源管理器將顯示以下巢狀目錄結構:

Create Directory

chdir() 函式

PHP 中的 chdir() 函式對應於 Linux/Windows 中的chdircd 命令。它會導致根據需要更改當前目錄。

chdir(string $directory): bool

此函式的字串引數是目錄的絕對路徑或相對路徑,需要將當前目錄更改為此目錄。它返回 true 或 false。

getcwd() 函式

getcwd() 函式的工作原理類似於 Ubuntu Linux 中的 pwd 命令,並返回當前工作目錄的路徑。

示例

使用以下程式碼片段,PHP 在更改當前工作目錄之前和之後顯示當前工作目錄。在新的當前目錄內建立了幾個檔案。使用 scandir() 函式列出檔案。

<?php
   echo "current directory: ". getcwd() . PHP_EOL;
   $dir = "./mydir";
   chdir($dir);
   echo "current directory changed to: ". getcwd() .PHP_EOL;

   $fp = fopen("a.txt", "w");
   fwrite($fp, "Hello World");
   fclose($fp);

   copy("a.txt", "b.txt");
   $dir = getcwd();
   foreach(scandir($dir) as $file)
   echo $file . PHP_EOL;
?>

它將產生以下輸出

current directory: C:\xampp\php
current directory changed to: C:\xampp\php\mydir
.
..
a.txt
b.txt

rmdir() 函式

rmdir() 函式刪除路徑作為引數給出的特定目錄。要刪除的目錄必須為空。

$dir = "c:/newdir/";
rmdir($dir) or die("The directory is not present or not empty");
廣告