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
广告