PHP 目錄函數,顧名思義,是一組用於檢索詳細資訊、修改詳細資訊以及獲取有關各種檔案系統目錄及其特定內容的資訊的函數。可以對目錄執行許多操作,例如建立、刪除、更改目前工作目錄、列出目錄中存在的檔案等。這些函數不需要單獨安裝,因為它們是 PHP 核心的一部分。但要啟用 chroot() 功能,我們需要設定 –enable-chroot-func 選項。
廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
讓我們來了解一些基本的 PHP 目錄功能,如下:
我們使用 mkdir() 函數在 PHP 程式腳本中建立一個新目錄。
文法:
mkdir($dir_path,$mode,$recursive_flag,$context);
哪裡,
範例:
<?php mkdir("/articles/"); echo("Directory created"); ?>
輸出:
這是一個基本範例,展示了在我們需要的路徑中建立目錄。確保路徑有足夠的權限,否則將拋出「權限被拒絕」錯誤。
我們分別使用 opendir() 和 readdir() 來開啟目錄連結並讀取它。第 1 步是開啟目錄,第 2 步是讀取它。
第 1 步: 要打開目錄鏈接,opendir() 是我們用來執行此步驟的函數。它需要兩個輸入參數,如下所示。
文法:
opendir($dir_path,$context);
這將傳回資源資料值作為其輸出。它提供的資源 ID 將在我們的進一步處理步驟中使用,否則我們會收到錯誤,因為資源 ID 無效。
第2步:要讀取目錄的內容,readdir()就是用於此目的的函數,需要遞歸調用它直到目錄到達目錄末尾手柄。
範例:
<?php $direct = "/files/"; if (is_dir($direct)){ if ($td = opendir($direct)){ while (($file = readdir($td)) !== false){ echo "filename:" . $file . "<br>"; } closedir($td); } } ?>
輸出:
首先在這個範例中,我們宣告需要讀取的目錄路徑。我們正在 if 語句中檢查該目錄是否存在,然後繼續開啟該目錄的內容並讀取。輸出顯示目錄中存在的檔案名稱。
我們使用 Closedir() 函數來在讀取目錄內容後關閉目錄。
文法:
$dir_handle = opendir($dir_path); ... ... closedir($dir_handle);
範例:
<?php $dir = "/file1"; if (is_dir($dir)) { if ($dh = opendir($dir)) { $direc = readdir($dh); echo("File present inside directory are:" .direc); closedir($dh); echo("Closed directory"); } } ?>
輸出:
在此範例中,我們首先聲明目錄的路徑。然後使用 if 條件語句檢查路徑是否有效,如果有效,則開啟目錄,讀取其變量,然後關閉它。因此,在目錄的開啟和關閉之間可以進行任何操作。
我們使用函數 chdir() 來更改它指向的目前工作目錄。
文法:
chdir(directory)
它只需要一個參數,也就是目前工作目錄應該指向的目錄。成功時傳回 true,如果更改目錄失敗則傳回 false。
範例:
<?php // Get current directory echo getcwd()."\n"; // Change directory chdir("/workspace/test"); // Get current directory echo getcwd(); ?>
輸出:
In this example, we are first printing the present working directory. Then we are changing the same using chdir function to “test” directory and printing the same on the output. Hence make sure the entire path we are giving here exists.
We use the function chroot() for changing the root directory of the ongoing process to the directory path we pass as an argument in this function. Also, the present working directory path will be changed to “/”. To perform this function one needs root permission/privileges.
Syntax:
chroot(directory)
Example:
<?php // Changing root directory path chroot("/change/path/dir/"); // Displaying present directory echo getcwd(); ?>
Output:
In this example, we are first using the chroot function to change the path of the root directory. Next, we are displaying the present working directory which will be now changed to home path.
For this purpose, we are using rewinddir() function which can reset the directory handle initially created by opendir() function.
Syntax:
rewinddir(directory)
It accepts only the directory path as its input argument which is used to tell the directory handle resource path which was opened with opendir() previously. This is an optional parameter which if not specified then the previous link used by the opendir() will be considered.
Example:
<?php $direc = "/file/"; // To open the directory and read its contents if (is_dir($direc)){ if ($place = opendir($direc)){ // List files in images directory while (($file = readdir($place)) !== false){ echo "filename:" . $file . "\n"; } rewinddir(); echo("Using the function rewinddir\n"); // List files again while (($file = readdir($place)) !== false){ echo "filename:" . $file . "\n"; } closedir($place); echo("Closed directory"); } } ?>
Output:
In this example first, we are specifying the directory path and if statement we are using to verify if the directory path is present or not. If the directory is present then we are opening and reading the contents of the file and printing the same. Now the file handler will stop printing since it reached the end of file pointer. When we use the rewinddir() function it resets the file handler and hence when we print the directory contents it prints the same output again.
We have gone through some of the basic and important PHP directory functions commonly used in this article. We also noticed that a few of these functions are dependant on each other. For example, we cannot use readdir() without using opendir(). Few other functions which are used are dir(), scandir() and getcwd().
以上是PHP目錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!