方法一:
<?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);
?>
分享到:
相关推荐
总结来说,PHP通过递归删除的方式可以快速清理整个目录,相比FTP具有更高的效率。通过理解并运用这些知识点,你可以更有效地管理你的服务器上的文件和目录。不过,务必谨慎操作,因为文件系统的删除操作通常是不可逆...
本文将深入探讨如何使用PHP的递归函数来删除目录和文件。 首先,让我们分析提供的代码片段: ```php function deldir($path){ $dh = opendir($path); var_dump(readdir($dh)); while (($d = readdir($dh)) !== ...
总结来说,`del_dir`函数是一个在PHP中实现递归删除文件和目录的有效方法。它不仅提供了一种方式来删除空目录,还可以通过参数控制来强制删除非空目录。在使用时要特别注意,因为删除操作是不可逆的,要确保对要删除...
// 递归删除子目录 } elseif (is_file($subFile)) { unlink($subFile); // 删除文件 } } } closedir($dir_handle); rmdir($directory); // 删除现在的空目录 } } } ``` 在这个示例中,`delDir()`首先检查...
递归删除文件夹的代码如下: ```php class UtilsMakeDir { private static $delBasePath = 'video'; public static function delDir($stringPath) { if (!$handle = @opendir($stringPath)) { return false; ...
在本示例中,我们看到的是一种递归删除操作,主要用于数据库中的部门管理。递归在这里被用来删除一个部门及其所有子部门。下面将详细解释这段代码的工作原理和递归在其中的作用。 首先,`del` 函数接受一个参数 `$...
下面是PHP代码中实现递归删除目录的示例代码: ```php <?php header("Content-type:text/html;charset=gbk"); // 创建一个函数来递归删除目录 function deldir($dir){ $dh = opendir($dir); // 打开目录 while($...
在本文中,我们将详细介绍PHP中的文件目录操作相关函数,并且分享如何实现一个递归删除目录的自定义函数。 首先,PHP提供了多个内置函数,用于创建和删除目录。最基础的函数是`mkdir()`,用于创建一个新的目录。其...
如果找到子类别,函数会再次调用自身,将子类别作为新的父类别ID,这样就能递归地获取所有子级。 `dbconnect.php`文件通常包含了数据库连接的设置,比如数据库类型(如MySQL)、服务器地址、用户名、密码和数据库名...
在PHP编程中,有时我们需要获取一个目录及其子目录下的所有文件。这通常通过递归算法来实现,因为非递归的方式可能会导致代码过于复杂...了解并熟练掌握递归获取目录内所有文件的方法,对于提升PHP开发能力非常有帮助。
通过这个示例,可以验证函数是否能够正确地删除数组中的空值元素。 这种方法的优点在于能够处理复杂的数据结构,特别是当数组中嵌套有其他数组时。然而,在使用递归时,开发者需要确保递归调用有一个明确的退出条件...
为了实现PHP递归删除多维数组中的某个值,我们定义了一个名为`dealMenuTagDelete`的递归函数。此函数接受两个参数:要处理的多维数组的引用和要删除的特定值。函数的工作流程如下: 1. 首先检查传入的`$menuData`...
总结,通过使用PHP的内置函数和递归方法,我们可以高效地删除目录及其所有内容,这在某些情况下可能比FTP更快速。在开发过程中,正确处理权限、错误和安全问题至关重要。对于这个特定的"修改版"实现,可能还包括了...
为了解决这个问题,开发者通常会编写一个递归函数,如`rrmdir()`,来实现递归删除整个目录及其子目录下的所有文件。 `rrmdir()`函数的工作原理如下: 1. 首先,它检查传入的参数`$dir`是否为一个目录。如果不是,...