PHP:目录的递归操作(创建、拷贝、删除)
2011-02-16 10:50:37| 分类:
PHP
| 标签:
|举报
|字号大中小 订阅
1. 递归创建目录
/**
* 递归创建目录
*
* @param String $dir 创建的多级目录
* @param String $mode 目录权限字串
*/
function create_dirs($dir, $mode='0777')
{
if(!is_dir($dir)){
$this->create_dirs(dirname($dir), $mode);
mkdir($dir, $mode);
}
return true;
}
2. 递归拷贝目录
/**
* 批量拷贝目录(包括子目录下所有文件)
*
* 用法:
* copy_dirs("laigw", "gwei", 1) 拷贝laigw下的文件到 gwei,包括子目录
* copy_dirs("laigw", "gwei", 0) 拷贝laigw下的文件到 gwei,不包括子目录
*
* @param String $source 源目录名
* @param String $destination 目的目录名
* @param Int $child 复制时,是不是包含的子目录
*/
function copy_dirs($source, $destination, $child)
{
if(!is_dir($source)){
echo("Error:the $source is not a direction!");
return 0;
}
if(!is_dir($destination)){
mkdir($destination, 0777);
}
$handle = dir($source);
while($entry = $handle->read())
{
if(($entry != ".") && ($entry != "..")) {
if(is_dir($source."/".$entry)) {
if($child) {
copy_dirs($source."/".$entry, $destination."/".$entry, $child);
}
} else {
copy($source."/".$entry, $destination."/".$entry);
}
}
}
return 1;
}
3. 递归删除目录
/**
* 递归删除目录(包括子目录下所有文件)
*
* @param String $dir 文件目录
*/
function rm_dirs($dir) {
if($objs = glob($dir."/*")) {
foreach($objs as $obj) {
is_dir($obj) ? rm_dirs($obj) : unlink($obj);
}
}
rmdir($dir);
}
评论这张
转发至微博
转发至微博
评论