php获取文件夹里的文件和子文件夹 显示大小 类型 日期等信息

<?php   
    $file="../../php";
    function list_file($date){
        //1、首先先读取文件夹
        $temp=scandir($date);
        //遍历文件夹
        foreach($temp as $v){
            $a=$date.'/'.$v;
           if(is_dir($a)){//如果是文件夹则执行
          
               if($v=='.' || $v=='..'){//判断是否为系统隐藏的文件.和..  如果是则跳过否则就继续往下走,防止无限循环再这里。
                   continue;
               }
               echo "<font color='red'>$a</font>","<br/>"; //把文件夹红名输出
             
               list_file($a);//因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来
           }else{
            echo $a,"<br/>";
           }
          
        }
    }
    list_file($file);

==============================
public function bianli1($dir)
    {
        $files = array();
        if($head = opendir($dir))
        {
            while(($file = readdir($head)) !== false)
            {
                if($file != ".." && $file!=".")
                {
                   if(is_dir($file))
                   {
                       $files[$file]=bianli1($dir.'/'.$file);
                   }
                   else
                   {
                       $files[]=$file;
                   }
                }
            }
        }
        closedir($head);
        return $files;
    }
================================
function bianli2()
    {
        $hostdir= iconv("utf-8","gbk","D:/wamp/www") ;
        $filesnames = scandir($hostdir);
        foreach ($filesnames as $name) {
            if($name!=".." && $name!=".")
            {
                $cipath = $hostdir.$name;
                $cjfilenames = scandir($cipath);
                foreach($cjfilenames as $cjname)
                {
                    if($cjname!=".." && $cjname!="." &&!is_dir($cipath."/".$cjname))
                    {
                        $str = file_get_contents($cipath."/".$cjname);
                        file_put_contents("D:/test.txt",$str,FILE_APPEND);
                    }
                }
            }
            echo "\n";
        }
    }
===================================
<?php

 /** 

  * 将读取到的目录以数组的形式展现出来 

 * @return array 

  * opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。 

  * is_dir() 函数检查指定的文件是否是目录。 

  * readdir() 函数返回由 opendir() 打开的目录句柄中的条目。 

  * @param array $files 所有的文件条目的存放数组 

  * @param string $file 返回的文件条目

  * @param string $dir 文件的路径

  * @param resource $handle 打开的文件目录句柄

  */

 function my_scandir($dir)

 {

     //定义一个数组

     $files = array();

     //检测是否存在文件

     if (is_dir($dir)) {

         //打开目录

         if ($handle = opendir($dir)) {

             //返回当前文件的条目

             while (($file = readdir($handle)) !== false) {

                 //去除特殊目录

                 if ($file != "." && $file != "..") {

                     //判断子目录是否还存在子目录

                     if (is_dir($dir . "/" . $file)) {

                         //递归调用本函数,再次获取目录

                         $files[$file] = my_scandir($dir . "/" . $file);

                     } else {

                        //获取目录数组

                        $files[] = $dir . "/" . $file;

                     }

                }

            }

            //关闭文件夹

             closedir($handle);

             //返回文件夹数组

             return $files;

         }

    }

}

 

 echo "<pre>";

 print_r(my_scandir("./aa")); //电脑的文件路径即可
=============================================
<?php
$dir="C:/THsoft";           //这是一个目录地址  也是根目录
if (is_dir($dir)){//判断$dir是否是一个目录
    if ($dh=opendir($dir)){//dh变量用来接收opendir的返回信息  如果为真  则执行while
        while (($file=readdir($dh))!==false){    //readdir()函数会返回一个文件的名称的
            echo "文件名称:".$file."<br/>";
            echo "文件大小:".filesize($dir."/".$file)."<br/>";    //使用filesize()函数读取文件大小..参数的文件的路径
            echo "修改时间:".date("Y-m-d H:i:s",filemtime($dir."/".$file))."<br/>";   //修改时间使用filemtime()  创建时间使用fileatime()
            //类型一般就是后缀..可以对文件的名称进行处理获取后缀信息
            $name = explode(".", $file); //将名称以.分隔成数组  最后一个就是后缀了
            echo "文件后缀:".$name[count($name)-1]."<br/>";
            echo "========================================================================<br/>";
        }
        closedir($dh);
    }
}
?>
======================================
filesize():取得文件大小
filetype():取得文件类型
filemtime():取得文件修改时间
filesize()
filesize() 函数用于取得文件大小,成功返回文件大小的字节数,否则返回 FALSE 。

语法:

int filesize( string filename )
例子:

<?php
$filename = 'test.txt';
echo $filename.'文件大小为: '.filesize($filename).' bytes';
?>

=======================================================
<?php

$size = filesize("upload.php");

function trans_byte($byte)

{

    $KB = 1024;

    $MB = 1024 * $KB;

    $GB = 1024 * $MB;

    $TB = 1024 * $GB;

    if ($byte < $KB) {

        return $byte . "B";

    } elseif ($byte < $MB) {

        return round($byte / $KB, 2) . "KB";

    } elseif ($byte < $GB) {

        return round($byte / $MB, 2) . "MB";

    } elseif ($byte < $TB) {

        return round($byte / $GB, 2) . "GB";

    } else {

        return round($byte / $TB, 2) . "TB";

    }

}

echo trans_byte($size);
======================================
<?php

//给我一个文件夹,返回该文件夹下所有的文件数量
function ShuLiang($url)//造一个方法,给一个参数
{
    $sl=0;//造一个变量,让他默认值为0;
    $arr = glob($url);//把该路径下所有的文件存到一个数组里面;
    foreach ($arr as $v)//循环便利一下,吧数组$arr赋给$v;
    {
        if(is_file($v))//先用个if判断一下这个文件夹下的文件是不是文件,有可能是文件夹;
        {
            $sl++;//如果是文件,数量加一;
        }
        else
        {
            $sl+=ShuLiang($v."/*");//如果是文件夹,那么再调用函数本身获取此文件夹下文件的数量,这种方法称为递归;
        }
    }
    return $sl;//当这个方法走完后,返回一个值$sl,这个值就是该路径下所有的文件数量;
}
echo ShuLiang("../www/*");//用这个方法查一下该路径下所有的文件数量;

?>
========

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hai7425

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值