PHP closedir() 函数



PHP 的 closedir() 函数代表“关闭目录”。此函数用于关闭目录句柄。

要对文件和文件夹执行任何操作,我们必须打开包含这些文件和其他文件夹的目录。当我们打开目录时,opendir() 函数会为我们提供一个目录句柄。它可以用于执行进一步的相关任务。最后,使用 closedir() 函数关闭目录句柄资源。

重要提示

  • 打开的目录可以用于多种用途。因此,打开的资源不会过期,除非您手动关闭它。因此,closedir() 函数通过关闭目录句柄来提高资源效率。
  • 在关闭文件句柄之前,使用 is_resource() 函数确定它是否是资源。这可以避免您遇到错误。
  • 如果您尝试关闭已关闭的目录句柄,则会发生 Uncaught TypeError 错误。因此,在关闭它之前,您需要确认已定义的目录句柄是一个资源。

语法

以下是 PHP 的 closedir() 函数的语法:

void closedir ( resource $dir_handle );

参数

以下是 closedir() 函数的必需和可选参数:

序号 参数及描述
1

dir_handle(可选)

这是使用 opendir() 方法先前打开的目录的句柄。

返回值

该函数不返回值。

PHP 版本

closedir() 函数在 PHP 4 核心版本中引入,并与 PHP 5、PHP 7 和 PHP 8 兼容。

示例

在这个示例中,我们将向您展示 PHP closedir() 函数的基本用法。我们将结合使用 opendir() 和 readdir() 函数以及 closedir()。如上所述,要关闭特定目录,我们必须使用 opendir() 和 readdir() 函数打开并读取它。因此,读取内容后,我们可以使用 closedir() 函数关闭它。

<?php
   // open the directory using opendir()
   $dir = opendir("/var/www/images");

   // Check if the directory handle is valid
   if ($dir) {
      // Loop through the directory and read each file
      while (($file = readdir($dir)) !== false) {
         echo "filename: " . $file . "<br>";
      }
   
      // Close the directory
      closedir($dir);
   
      // Show message that directory is closed
      echo "The directory has been closed.";
   } else {
      echo "Could not open the directory.";
   }
?> 

输出

这将产生以下结果:

filename: .
filename: ..
filename: logo.gif
filename: mohd.gif
The directory has been closed.

示例

在这个 PHP 示例中,我们将使用 closedir() 函数,并且不会在函数中提及目录句柄。并显示一条消息来告知用户目录已关闭。

<?php
   $dir = opendir("/var/www/images");

   if ($dir) {
      while (($file = readdir($dir)) !== false) {
         echo "filename: " . $file . "<br>";
      }
   
      // close the directory without mentioning the directory handle
      closedir($dir);
   
      echo "The directory has been closed.";
   } else {
      echo "Could not open the directory.";
   }
?> 

输出

这将给出以下结果:

filename: .
filename: ..
filename: logo.gif
filename: mohd.gif
The directory has been closed.

示例

在此 PHP 代码中,我们将通过确认用户是否要关闭它来安全地关闭目录。因此,使用这种方法,我们为用户提供了额外的保障。显示一条消息,表明目录已关闭。如果 $confirmClose 为 false,则显示一条消息,指出目录未关闭。

<?php
   // open the directory
   $dir = opendir("/var/www/images");

   // check if the directory handle is valid
   if ($dir) {
      // loop over the directory and read each file
      while (($file = readdir($dir)) !== false) {
         echo "Filename: " . $file . "<br>";
      }
    
      // Confirm before closing the directory handle
      $confirmClose = true; 
    
      if ($confirmClose) {
         // close the directory using closedir()
         closedir($dir);
        
         // show message that directory is closed
         echo "The directory has been closed.";

      } else {
         echo "The directory was not closed.";
      }
   } else {
      echo "Could not open the directory.";
   }
?> 

输出

这将导致以下结果:

Filename: .
Filename: ..
Filename: index.php
Filename: new dir
Filename: images
Filename: my.php
The directory has been closed.

总结

使用完目录句柄后,需要将其关闭。我们可以通过内置的目录函数 closedir() 来完成此任务。

php_function_reference.htm
广告