Home > Backend Development > PHP Problem > How to delete non-empty folders in php

How to delete non-empty folders in php

青灯夜游
Release: 2023-03-08 20:54:01
Original
2653 people have browsed it

php method to delete a non-empty folder: first use the unlink() function to delete each file in the folder, the syntax format is "unlink(filename)"; then use the rmdir() function to delete An empty folder is sufficient, and the syntax format is "rmdir(dir)".

How to delete non-empty folders in php

The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer

php rmdir() function is used to delete empty directories , but if we want to delete a non-empty directory, we must delete the files or subdirectories in the non-empty directory. Here we will introduce how to delete a non-empty directory in PHP.

php rmdir() function

rmdir — delete empty directories

Syntax:

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

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:

  • #dirname: The path to the directory.
  • context: Added support for context in PHP 5.0.0.

Recommended learning: "PHP Video Tutorial"

php rmdir() deletes non-empty directories

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. Delete this 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
/* by http://www.manongjc.com/article/27.html*/
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 it must also For security and cross-platform considerations, try not to use it.

For more programming related knowledge, please visit: Programming Video! !

The above is the detailed content of How to delete non-empty folders in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template