递归打印、创建、删除级联目录

递归打印级联目录:

<?php
function open_dir($path, $len = 3)
{
    $dp = opendir($path);
    while (($filename = readdir($dp)) !== false)
    {   
        if ($filename == '.' || $filename == '..')   //当是虚拟目录时
        {
            continue;
        }
    
       echo '<p>' . str_repeat(' ', $len) . '|' . '---<span id="' . $filename .'">' . $filename, '</span><br /></p>';  //打印文件名
           
        if (is_dir($path . '/' . $filename))   //如果是目录
        {  
            echo <<<CHCOLOR
            <script type="text/javascript">
                document.getElementById('$filename').style.color = 'blue';
            </script>
CHCOLOR;
            open_dir($path . '/' . $filename, 3 * $len);   //递归调用函数open_dir()继续打印文件
        }   
    }  
    closedir($dp);

}
$path = './test';
open_dir($path);
?>

在浏览器里现实效果如:

递归创建级联目录

<?php
//方法一
function mk_dir($path)
{
    //如果$path的父目录存在
    if (is_dir(dirname($path)))
    {   
        return mkdir($path);
    }   

    mk_dir(dirname($path));
    return mkdir($path);
}

//方法二
function mk_dir1($path)
{
    if (is_dir($path))
    {   
        return true;
    }   
    //父目录一定要先存在,如果不存在,创建之
    return is_dir(dirname($path)) || mk_dir1(dirname($path)) ? mkdir($path) : false; 
}
$path = './a/b/c/d/e/f';
echo mk_dir($path) ? 'ok' : 'fail';

//方法三
mkdir($path, 0777, true);
?> 

递归删除级联目录

<?php
function del_dir($path)
{
    //不是目录
    if (!is_dir($path))
    {
        return NULL;
    }
    //打开目录
    $dp = opendir($path);
    while(($filename = readdir($dp)) !== false)
    {
        if ($filename == '.' || $filename == '..')
        {
            continue;
        }

        $tem_path = $path . '/' . $filename;
        if (is_dir($tem_path))   //如果是目录
        {
            del_dir($tem_path);   //递归调用del_dir()
        }
        else
        {
            unlink($tem_path);    //删除文件
        }
    }
    closedir($dp);
    rmdir($path);    //删除目录
?>                                                                                                            

小小练习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值