PHP 目錄 opendir() 函式



PHP 目錄opendir()函式用於開啟特定目錄路徑的目錄。顧名思義,“opendir”代表“開啟目錄”。此函式透過提供資源ID(目錄控制代碼)來開啟特定目錄路徑。

您可以使用此目錄控制代碼遍歷特定目錄中的所有檔案和目錄,以執行各種其他操作,例如讀取檔案和目錄或更改目錄。它開啟一個目錄控制代碼,可在隨後的 closedir()、readdir() 和 rewinddir() 呼叫中使用。

注意

由於以下原因,函式執行時可能會出現錯誤:

  • 使用不正確的目錄路徑可能會導致錯誤。
  • 可能禁止訪問該目錄。
  • 檔案系統不允許開啟您嘗試訪問的目錄。

語法

以下是 PHP 目錄opendir()函式的語法:

resource opendir ( string $path [, resource $context] );

引數

以下是opendir()函式的必需和可選引數:

序號 引數和說明
1

path(必需)

要開啟的目錄路徑

2

context(可選)

指定目錄控制代碼的上下文。上下文是一組可以修改流行為的選項。

返回值

成功時返回目錄控制代碼資源,失敗時返回 FALSE。

PHP 版本

opendir()函式首次出現在 PHP 4 的核心程式碼中,在 PHP 5、PHP 7 和 PHP 8 中仍然可以輕鬆使用。

示例

在此程式碼中,我們將使用 PHP 目錄opendir()函式和 if 語句來檢查目錄是否已開啟。此程式碼基本上為指定目錄的路徑開啟目錄控制代碼。然後,如果成功開啟,它會打印出目錄控制代碼值。

<?php
   $dirHandle = opendir("/Applications/XAMPP/xamppfiles/htdocs/mac/new dir/");
   if(is_resource($dirHandle)){
      echo "This is a resource, it is: " . $dirHandle;
   }
?> 

輸出

這將產生以下結果:

This is a resource, it is: Resource id #3

示例

我們將使用opendir()開啟工作目錄。我們還將使用 readdir() 和 closedir() 來讀取和關閉目錄。

<?php

   $dir = opendir("/var/www/images");
   while (($file = readdir($dir)) !== false) {
      echo "filename: " . $file . "<br />";
   }
   closedir($dir);
?> 

輸出

這將建立以下結果:

filename: .
filename: ..
filename: logo.gif
filename: mohd.gif

示例

在本節中,我們將處理錯誤。所以,可能存在特定目錄不存在或您輸入了錯誤路徑的情況,因此我們應該正確地處理它。

<?php
   $dir_handle = opendir("/Applications/XAMPP/xamppfiles/htdocs/mac/");

   if ($dir_handle === false) {
      die("Failed to open directory");

   } else {
      echo "Directory opened successfully, continue with operations";

   }
?> 

輸出

這將導致以下結果:

  • 如果成功開啟。

    Directory opened successfully, continue with operations
    
  • 如果開啟失敗。

    Failed to open directory

示例

現在,我們將向您展示如何將opendir()與 PHP 中的其他預定義目錄函式一起使用。因此,這裡我們將使用 readdir() 函式讀取工作目錄的內容,還將使用 closedir() 函式關閉我們使用opendir()開啟的目錄。

<?php
   // declare the directory path
   $directory = "/Applications/XAMPP/xamppfiles/htdocs/mac/new dir";

   // try to open the directory
   $dir_path = opendir($directory);

   // check if directory opening was successful
   if ($dir_path === false) {
      echo "Failed to open directory";
   } else {
      echo "Directory opened successfully<br>";

      // read and display contents of the directory
      while (($file = readdir($dir_path)) !== false) {
         echo $file . "<br>";
      }

      // close the directory handle
      closedir($dir_path);
   }
?> 

輸出

此 PHP 程式碼的結果為:

Directory opened successfully
.
..
.DS_Store
Pictures
my_folder
index.txt
my.txt

總結

opendir()是 PHP 目錄函式之一,它首先開啟目錄。當使用 PHP 處理檔案和資料夾時,這是一個非常有用的函式。

php_function_reference.htm
廣告