zpy2 发表于 2020-2-29 09:16

分享自己写的一个文件树

一个php的树目录,请大家看看是不是还有改进的地方。
<!DOCTYPE html>
<html>
<head>
<title>mybookmark上传文件</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=3.0">

<style>
.hidden{display:none;}
</style>
</head>
<body>
<?php
error_reporting(E_ERROR|E_PARSE);
//header("Content-type: text/html; charset=utf-8");
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
function tree($directory)
{
        $mydir=dir($directory);
        echo "<ul>\n";
        while($file=$mydir->read()){
                if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))
        {
                        echo "<li onclick=\"opentree(this)\"><font color=\"#ff00cc\"><b>$file</b></font></li>\n";


                        tree("$directory/$file");
                }//if
                else
                {
                        if(($file!=".") AND ($file!="..")){
                                //$href=str_replace("/data/data/com.termux/files/home/htdocs","",$directory);
                                echo "<li>".$file.'</li>';

                        }
?>




<?php

//                        echo "</li>";
                }// if file
        } //while
        echo "</ul>\n";

        $mydir->close();
} //funcion
//开始运行
echo "<h2>目录为粉红色</h2>";
//tree("sdcard0");
//echo dirname(__FILE__);
tree(dirname(__FILE__));



?>
<script>
function opentree(myNode){

        ul=myNode.nextSibling.nextElementSibling;
        var sh=ul.classList.contains('hidden');
        if(sh){
                ul.classList.remove('hidden');
       
        }else{
       
                ul.classList.add('hidden');
        }
}

</script>

</body>

</html>

黑夜不黑 发表于 2020-2-29 11:09

学习了,大佬膜拜

zpy2 发表于 2020-2-29 11:18

本帖最后由 zpy2 于 2020-2-29 11:32 编辑

liphily 发表于 2020-2-29 11:12
不知道为什么中文乱码。我看你也写了utf-8了的。。。
你用的是啥服务器?我是Linux的Apache
你开头加一句 header试试,注意文件前面不要留空。
对了,你是windows剪贴板复制的吧,文件一定用另存为 utf-8格式,windows默认是gbk编码。可以看看你的dir.php文件编码是不是utf-8.
<?php
header("Content-type: text/html; charset=utf-8");
?>
<!DOCTYPE html>
<html>
<head>
<title>mybookmark上传文件</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=3.0">

<style>
.hidden{display:none;}
</style>
</head>
<body>
<?php
error_reporting(E_ERROR|E_PARSE);
/**********************
一个简单的目录递归函数
第一种实现办法:用dir返回对象
***********************/
function tree($directory)
{
      $mydir=dir($directory);
      echo "<ul>\n";
      while($file=$mydir->read()){
                if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))
      {
                        echo "<li onclick=\"opentree(this)\"><font color=\"#ff00cc\"><b>$file</b></font></li>\n";


                        tree("$directory/$file");
                }//if
                else
                {
                        if(($file!=".") AND ($file!="..")){
                              //$href=str_replace("/data/data/com.termux/files/home/htdocs","",$directory);
                              echo "<li>".$file.'</li>';

                        }
?>




<?php

//                        echo "</li>";
                }// if file
      } //while
      echo "</ul>\n";

      $mydir->close();
} //funcion
//开始运行
echo "<h2>目录为粉红色</h2>";
//tree("sdcard0");
//echo dirname(__FILE__);
tree(dirname(__FILE__));



?>
<script>
function opentree(myNode){

      ul=myNode.nextSibling.nextElementSibling;
      var sh=ul.classList.contains('hidden');
      if(sh){
                ul.classList.remove('hidden');
      
      }else{
      
                ul.classList.add('hidden');
      }
}

</script>

</body>

</html>

zpy2 发表于 2020-2-29 11:19

黑夜不黑 发表于 2020-2-29 11:09
学习了,大佬膜拜

客气了,一起学习。。。

lamorn 发表于 2020-2-29 13:51

中文文件还是乱码。。

lamorn 发表于 2020-2-29 13:56

linux下没问题。。win10不知道啥原因乱码。
页: [1]
查看完整版本: 分享自己写的一个文件树