• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-26) 25次浏览 已收录 0个评论
 <BR>function rrmdir($dir) { <BR>if (is_dir($dir)) { <BR>$objects = scandir($dir); <BR>fore<mark style="color:transparent">本%文来源gaodaimacom搞#^代%!码网@</mark>搞代gaodaima码ach ($objects as $object) { <BR>if ($object != “.” && $object != “..”) { <BR>if (filetype($dir.”/”.$object) == “dir”) rrmdir($dir.”/”.$object); else unlink($dir.”/”.$object); <BR>} <BR>} <BR>reset($objects); <BR>} <BR>} <BR>


rmdir
(PHP 4, PHP 5)
rmdir — 删除目录
Report a bug 说明
bool rmdir ( string $dirname )
尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。成功时返回 TRUE, 或者在失败时返回 FALSE.
Note: 自 PHP 5.0.0 起 rmdir() 也可用于某些 URL 封装协议。参见Supported Protocols and Wrappers 的列表看看 rmdir() 支持哪些 URL 封装协议。
Note: 在 PHP 5.0.0 中增加了 对上下文(Context)的支持。有关 上下文(Context) 的说明参见 Stream 函数。
Note: 当启用 安全模式时, PHP 会在执行脚本时检查被脚本操作的目录是否与被执行的脚本有相同的 UID(所有者)。
参见 mkdir() 和 unlink()。

 <BR><?php <BR>function rrmdir($dir) { <BR>if (is_dir($dir)) { <BR>$objects = scandir($dir); <BR>foreach ($objects as $object) { <BR>if ($object != "." && $object != "..") { <BR>if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); <BR>} <BR>} <BR>reset($objects); <BR>rmdir($dir); <BR>} <BR>} <BR>?> <BR>


This isn’t my code, but just thought I would share, since it took me so long to find. This is a function to delete a folder, all sub-folders, and files in one clean move.
Just tell it what directory you want deleted, in relation to the page that this function is executed. Then set $empty = true if you want the folder just emptied, but not deleted. If you set $empty = false, or just simply leave it out, the given directory will be deleted, as well.

 <BR>


<?php
function deleteAll($directory, $empty = false) {
if(substr($directory,-1) == “/”) {
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory)) {
return false;
} elseif(!is_readable($directory)) {
return false;
} else {
$directoryHandle = opendir($directory);
while ($contents = readdir($directoryHandle)) {
if($contents != ‘.’ && $contents != ‘..’) {
$path = $directory . “/” . $contents;
if(is_dir($path)) {
deleteAll($path);
} else {
unlink($path);
}
}
}
closedir($directoryHandle);
if($empty == false) {
if(!rmdir($directory)) {
return false;
}
}
return true;
}
}
?>
[/code]
A patch to previous script to make sure rights for deletion is set:

 <BR><?php <BR>//Delete folder function <BR>function deleteDirectory($dir) { <BR>if (!file_exists($dir)) return true; <BR>if (!is_dir($dir) || is_link($dir)) return unlink($dir); <BR>foreach (scandir($dir) as $item) { <BR>if ($item == '.' || $item == '..') continue; <BR>if (!deleteDirectory($dir . "/" . $item)) { <BR>chmod($dir . "/" . $item, 0777); <BR>if (!deleteDirectory($dir . "/" . $item)) return false; <BR>}; <BR>} <BR>return rmdir($dir); <BR>} <BR>?> <BR>


更多说明可以参考 http://cn.php.net/rmdir


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:rrmdir php中递归删除目录及目录下的文件_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址