生成目录树形结构

<?php
echo '<script src="http://code.jquery.com/jquery.min.js"></script>';
echo '<script>
function showpath(str,t){clearTimeout(t);$("#file-path").remove();$("<div id=\'file-path\'></div>").appendTo("body").html(str);t=setTimeout("$(\'#file-path\').fadeOut()",10000);return t;}

$(function(){
    var t={};
    $(".expandable").click(function(){event.preventDefault();event.stopPropagation();$(this).children().toggle();});
    $(".file").click(function(){event.stopPropagation();event.preventDefault();});
    $(".file").click(function(){var tmpstr="";clearTimeout(t);
        $(this).parents("li").each(function(){tmpstr=($(this)[0].firstChild.nodeValue+""+tmpstr);});
        tmpstr+=$(this).text();t=showpath(tmpstr,t);
    });$("body").on("click","#file-path",function(){clearTimeout(t);$(this).fadeOut();});
});</script>';
echo '<style>.expandable{cursor:pointer;font-weight:bold}.file{color:blue;cursor:pointer;}#file-path{font-size:20px;font-weight:bold;position:fixed;width:98%;cursor:pointer;padding:10px 15px;text-align:center;top:0px;box-sizing:border-box;left:1%;border:2px solid black;background:rgba(0,188,188,0.6);border-radius:5px;}</style>';
function traverse($path, $x, $y) {
    $current_dir = opendir($path);
    while (($file = readdir($current_dir)) !== false) {
        $sub_dir = $path . DIRECTORY_SEPARATOR . $file; //构建子目录路径
        if ($file == '.' || $file == '..') {
            continue;
        } else if (is_dir($sub_dir)) {
            for ($i = 0; $i < $x; $i++) {
                echo "";
            }
            echo "│┼" . $file . "<br>";
            traverse($sub_dir, $x + 1, $y + 1);
        } else {
            for ($i = 0; $i < $x; $i++) {
                echo "";
            }
            echo "│├" . $file . "<br>";
        }
    }
}
$countFile = 0;
function traverse2($path, $x, $y) {
    global $countFile;
    $current_dir = opendir($path);
    while (($file = readdir($current_dir)) !== false) {
        $sub_dir = $path . DIRECTORY_SEPARATOR . $file; //构建子目录路径
        if ($file == '.' || $file == '..') {
            continue;
        } else if (is_dir($sub_dir)) {
            echo "<li class='expandable level" . $x . "'>" . $file . "<ul>";
            traverse2($sub_dir, $x + 1, $y + 1);
            echo "</ul></li>";
        } else {
            // if (substr($file, -3) == 'php') {
            $countFile++;
            //     echo "<li class='file'>" . $file . "</li>";
            // }
            echo "<li class='file'>" . $file . "</li>";

        }
    }
}
echo "<div id='control'><button οnclick='$(\".expandable\").children().hide();'>全部折叠</button><button οnclick='$(\".expandable\").children().show();'>全部展开</button></div>";

echo "<ol style='position:relative;'>";
traverse2('.', 0, 0);
echo "</ol>";
echo "<p style='clear:both;position:relative'>共计" . $countFile . "个文件</p>";
// traverse(".", 0, 0);
?>

 

转载于:https://www.cnblogs.com/sky-view/p/4421735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值