`
hjw0571
  • 浏览: 47935 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP 递归地删除目录

    博客分类:
  • PHP
PHP 
阅读更多
方法一:

<?php
/**
* 函数名: deleteDir
* 功 能: 递归地删除指定目录
* 参 数: $dir 目录
* 返回值: 无
*/

function deleteDir($dir)
{
    $handle = @opendir($dir); //打开目录

    readdir($handle); //排除当前目录 "."

    readdir($handle); //排除当前目录 ".."

    while (false !== ($file = readdir($handle))) {
        //构造文件或目录的路径

        $file = $dir . DIRECTORY_SEPARATOR .$file;
        if (is_dir($file)){
            deleteDir($file);//如果是子目录就进行递归操作

        } else {
            if (@unlink($file)){//如果是文件就使用unlink()删除

                echo "文件 <b>$file</b>删除成功!\n";
            } else {
                echo "文件 <b>$file</b>删除失败!\n";
            }
        }
    }
    //删除当前目录

    if (@rmdir($dir)){
        echo "目录 <b>$dir</b>删除成功!\n";
    } else {
        echo "目录 <b>$dir</b>删除失败!\n";
    }
}

//测试

$dir = "test";
deleteDir($dir);

?>




方法二:



<?php

function deleteDir($dir)
{
   if($items = glob($dir."/*")){
       foreach($items as $obj) {
           is_dir($obj)? deleteDir($obj) : unlink($obj);
       }
   }
   rmdir($dir);
}
$dir = "test";
deleteDir($dir);

?>




方法三:



<?php
function deleteDir($dirName)
{
    $result = false;
    if(! is_dir($dirName)){
        //trigger_error('Invalid Parameter', E_USER_ERROR);

        echo " $dirName 不是目录!";
        exit(0);
    }

    $handle = opendir($dirName); //打开目录

    while(($file = readdir($handle)) !== false) {
        if($file != '.' && $file != '..'){ //排除"."和"."

            $dir = $dirName . DIRECTORY_SEPARATOR . $file;
            //$dir是目录时递归调用deleteDir,是文件则直接删除

            is_dir($dir) ? deleteDir($dir) : unlink($dir);
        }
    }
    closedir($handle);
    $result = rmdir($dirName) ? true : false;
    return $result;
}
//测试

$dirName = "test";
deleteDir($dirName);
?>


1
1
分享到:
评论

相关推荐

    php快速删除目录及目录中的文件

    总结来说,PHP通过递归删除的方式可以快速清理整个目录,相比FTP具有更高的效率。通过理解并运用这些知识点,你可以更有效地管理你的服务器上的文件和目录。不过,务必谨慎操作,因为文件系统的删除操作通常是不可逆...

    php递归删除目录与文件的方法

    本文将深入探讨如何使用PHP的递归函数来删除目录和文件。 首先,让我们分析提供的代码片段: ```php function deldir($path){ $dh = opendir($path); var_dump(readdir($dh)); while (($d = readdir($dh)) !== ...

    php自定义函数之递归删除文件及目录

    总结来说,`del_dir`函数是一个在PHP中实现递归删除文件和目录的有效方法。它不仅提供了一种方式来删除空目录,还可以通过参数控制来强制删除非空目录。在使用时要特别注意,因为删除操作是不可逆的,要确保对要删除...

    php rmdir使用递归函数删除非空目录实例详解

    // 递归删除子目录 } elseif (is_file($subFile)) { unlink($subFile); // 删除文件 } } } closedir($dir_handle); rmdir($directory); // 删除现在的空目录 } } } ``` 在这个示例中,`delDir()`首先检查...

    php递归创建和删除文件夹的代码小结

    递归删除文件夹的代码如下: ```php class UtilsMakeDir { private static $delBasePath = 'video'; public static function delDir($stringPath) { if (!$handle = @opendir($stringPath)) { return false; ...

    递归删除一个节点以及该节点下的全部节点示例_.docx

    在本示例中,我们看到的是一种递归删除操作,主要用于数据库中的部门管理。递归在这里被用来删除一个部门及其所有子部门。下面将详细解释这段代码的工作原理和递归在其中的作用。 首先,`del` 函数接受一个参数 `$...

    php利用递归实现删除文件目录的方法

    下面是PHP代码中实现递归删除目录的示例代码: ```php &lt;?php header("Content-type:text/html;charset=gbk"); // 创建一个函数来递归删除目录 function deldir($dir){ $dh = opendir($dir); // 打开目录 while($...

    php创建和删除目录函数介绍和递归删除目录函数分享

    在本文中,我们将详细介绍PHP中的文件目录操作相关函数,并且分享如何实现一个递归删除目录的自定义函数。 首先,PHP提供了多个内置函数,用于创建和删除目录。最基础的函数是`mkdir()`,用于创建一个新的目录。其...

    自己写的php 递归无限分类 附有sql文件

    如果找到子类别,函数会再次调用自身,将子类别作为新的父类别ID,这样就能递归地获取所有子级。 `dbconnect.php`文件通常包含了数据库连接的设置,比如数据库类型(如MySQL)、服务器地址、用户名、密码和数据库名...

    PHP递归获取目录内所有文件的实现方法

    在PHP编程中,有时我们需要获取一个目录及其子目录下的所有文件。这通常通过递归算法来实现,因为非递归的方式可能会导致代码过于复杂...了解并熟练掌握递归获取目录内所有文件的方法,对于提升PHP开发能力非常有帮助。

    php递归调用删除数组空值元素的方法

    通过这个示例,可以验证函数是否能够正确地删除数组中的空值元素。 这种方法的优点在于能够处理复杂的数据结构,特别是当数组中嵌套有其他数组时。然而,在使用递归时,开发者需要确保递归调用有一个明确的退出条件...

    PHP递归删除多维数组中的某个值

    为了实现PHP递归删除多维数组中的某个值,我们定义了一个名为`dealMenuTagDelete`的递归函数。此函数接受两个参数:要处理的多维数组的引用和要删除的特定值。函数的工作流程如下: 1. 首先检查传入的`$menuData`...

    php快速删除目录及目录中的文件,比ftp还要快[修改版].

    总结,通过使用PHP的内置函数和递归方法,我们可以高效地删除目录及其所有内容,这在某些情况下可能比FTP更快速。在开发过程中,正确处理权限、错误和安全问题至关重要。对于这个特定的"修改版"实现,可能还包括了...

    rrmdir php中递归删除目录及目录下的文件

    为了解决这个问题,开发者通常会编写一个递归函数,如`rrmdir()`,来实现递归删除整个目录及其子目录下的所有文件。 `rrmdir()`函数的工作原理如下: 1. 首先,它检查传入的参数`$dir`是否为一个目录。如果不是,...

Global site tag (gtag.js) - Google Analytics