Home php教程 PHP开发 Detailed explanation of php rmdir using recursive function to delete non-empty directory instances

Detailed explanation of php rmdir using recursive function to delete non-empty directory instances

Dec 28, 2016 pm 03:03 PM

First, let me introduce to you the rmdir() function.

php rmdir() function

rmdir — delete empty directories

Syntax:

bool rmdir ( string $dirname [, resource $context ] )

Try to delete the directory specified by dirname. The directory must be empty and must have appropriate permissions. An E_WARNING level error will be generated on failure.
Parameters:

1.dirname: The path to the directory.
2.context: Support for context (Context) has been added in PHP 5.0.0.

php rmdir() deletes a non-empty directory

As mentioned above, the rmdir() function can only delete empty directories. If it is a non-empty directory, you need to enter the directory first. Use the unlink() function to delete every file in the directory, and then come back and delete the empty directory. If there are subdirectories in the directory and the directory is not empty, you need to use the recursive method. The source code of the custom recursive function to delete a directory is as follows:

<?php
function delDir($directory){//自定义函数递归的函数整个目录
  if(file_exists($directory)){//判断目录是否存在,如果不存在rmdir()函数会出错
    if($dir_handle=@opendir($directory)){//打开目录返回目录资源,并判断是否成功
      while($filename=readdir($dir_handle)){//遍历目录,读出目录中的文件或文件夹
        if($filename!=&#39;.&#39; && $filename!=&#39;..&#39;){//一定要排除两个特殊的目录
          $subFile=$directory."/".$filename;//将目录下的文件与当前目录相连
          if(is_dir($subFile)){//如果是目录条件则成了
            delDir($subFile);//递归调用自己删除子目录
          }
          if(is_file($subFile)){//如果是文件条件则成立
            unlink($subFile);//直接删除这个文件
          }
        }
      }
      closedir($dir_handle);//关闭目录资源
      rmdir($directory);//删除空目录
    }
  }
}
 
delDir("mydir");//调用delDir函数
 
?>
Copy after login

In addition to processing recursive deletion of non-empty directories, we can also use the operating system command "rm -rf" to delete non-empty directories, but we must also consider security and Consider cross-platform considerations and try not to use it.

Thank you for reading, I hope it can help you, thank you for your support of this site!

For more detailed explanations of how php rmdir uses recursive functions to delete non-empty directory instances, please pay attention to the PHP Chinese website!


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1660
14
PHP Tutorial
1260
29
C# Tutorial
1233
24