PHP目錄

WBOY
發布: 2024-08-29 13:09:09
原創
1224 人瀏覽過

PHP 目錄函數,顧名思義,是一組用於檢索詳細資訊、修改詳細資訊以及獲取有關各種檔案系統目錄及其特定內容的資訊的函數。可以對目錄執行許多操作,例如建立、刪除、更改目前工作目錄、列出目錄中存在的檔案等。這些函數不需要單獨安裝,因為它們是 PHP 核心的一部分。但要啟用 chroot() 功能,我們需要設定 –enable-chroot-func 選項。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

PHP目錄的功能

讓我們來了解一些基本的 PHP 目錄功能,如下:

1.建立一個新目錄

我們使用 mkdir() 函數在 PHP 程式腳本中建立一個新目錄。

文法:

mkdir($dir_path,$mode,$recursive_flag,$context);
登入後複製

哪裡,

  • $dir_path 是將建立指定的新目錄的相對路徑或絕對路徑。
  • $mode 是採用八進位值的參數,它決定新建立的目錄的可存取等級。
  • $recursive 是一個標誌類型字段,有 2 個值 true 或 false,可以允許我們建立巢狀目錄或不允許。
  • $context 與 PHP unlink() 類似,例如使用流來指定某些協定等。這也將只傳回一個布林值,如果執行成功完成,則該值將為 true,否則為 false。

範例:

<?php
mkdir("/articles/");
echo("Directory created");
?>
登入後複製

輸出:

PHP目錄

這是一個基本範例,展示了在我們需要的路徑中建立目錄。確保路徑有足夠的權限,否則將拋出「權限被拒絕」錯誤。

2.列出目錄的內容

我們分別使用 opendir() 和 readdir() 來開啟目錄連結並讀取它。第 1 步是開啟目錄,第 2 步是讀取它。

第 1 步: 要打開目錄鏈接,opendir() 是我們用來執行此步驟的函數。它需要兩個輸入參數,如下所示。

文法:

opendir($dir_path,$context);
登入後複製
  • $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);
}
}
?>
登入後複製

輸出:

PHP目錄

首先在這個範例中,我們宣告需要讀取的目錄路徑。我們正在 if 語句中檢查該目錄是否存在,然後繼續開啟該目錄的內容並讀取。輸出顯示目錄中存在的檔案名稱。

3.關閉目錄

我們使用 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");
}
}
?>
登入後複製

輸出:

PHP目錄

在此範例中,我們首先聲明目錄的路徑。然後使用 if 條件語句檢查路徑是否有效,如果有效,則開啟目錄,讀取其變量,然後關閉它。因此,在目錄的開啟和關閉之間可以進行任何操作。

4.更改目前目錄

我們使用函數 chdir() 來更改它指向的目前工作目錄。

文法:

chdir(directory)
登入後複製

它只需要一個參數,也就是目前工作目錄應該指向的目錄。成功時傳回 true,如果更改目錄失敗則傳回 false。

範例:

<?php
// Get current directory
echo getcwd()."\n";
// Change directory
chdir("/workspace/test");
// Get current directory
echo getcwd();
?>
登入後複製

輸出:

PHP目錄

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.

5. To Change the Directory Path of Root

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:

PHP目錄

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.

6. To Reset the Directory Handle

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:

PHP目錄

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.

Conclusion

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中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!