zoukankan      html  css  js  c++  java
  • PHP-------- 文件操作

                                                              文件操作

     

    文件操作应注意:

    1. Php只能操作服务器的文件,不能操作客户端的文件

    2.文件包含目录和文件

     

    一、判断文件类型

     

    【1】         filetype需要的参数是  //获取文件类型

    需要的参数是::文件的完整路径

    例子:var_dump(filetype("../lianxi.php"));; //返回文件的类型:目录dir 文件file

    ../代表上级(目录)的意思

     

    显示的结果:

                     代表它是一个文件

    这个文件类型是指它是一个目录还是文件

     

     

    例子:

                           代表它是一个目录

     

    2is_dir(“ ”) //判断是否是目录

    例子:

    var_dump(is_dir("../lianzi1")); //判断路径是不是目录

    显示的结果:

       说明它是一个目录

    显示的结果:

    说明它不是一个目录

     

    【3is_ file (“ ”) //判断是否是文件

    var_dump(is_file("../11.php")); //判断路径是不是文件

    显示的结果:

     

    二、 文件属性

    1fileatime(" ");  //文件上次访问时间

    显示的结果:

                     日期时间戳

    把日期时间戳,转化,格式化一下

    echo date("Y-m-d H:i:s",fileatime("../lianxi.php "); //上次访问时间

    显示的结果:

     

    2filectime(" ")  //文件的创建时间

    echo date("Y-m-d H:i:s",filectime("../lianxi.php ")); //创建时间

    显示结果:

    3filemtime(" ")  //修改时间

    echo date("Y-m-d H:i:s",filemtime("../lianxi.php ")); //修改时间

    显示结果:

    4filesize(""); //获取文件大小,字节为单位

    echo filesize("../lianxi.php "); //文件大小,字节为单位

    显示结果:

     

    5file_exists(" ")  //判断文件是否存在

    var_dump(file_exists("../lianxi.php ")); //判断文件是否存在

    显示结果:

    文件存在返回true


    三、文件路径

    1当前路径:./     或者什么也不写,也代表当前路径

    当前路径它们在你同一文件加下的文件

    【2】         上级目录:../ 

    【3】         下级目录:目录/     

    【4】         根路径:/     斜杠开头    代表C盘、D

    根路径:/   要分是在PHP里还是在HTML

    1)如果是php里面的根(/)路径代表:磁盘的根

    2)如果是在网页里面的根(/)路径代表:服务器的根(www目录)

    5$_SERVER['DOCUMENT_ROOT']  //取当前服务器的根路径

    echo $_SERVER['DOCUMENT_ROOT']; //取服务器的根路径

    显示结果:

     

    6basename(" ")  //从路径中获取文件名

    echo basename("../lianxi.php "); //从路径中获取带后缀的文件名

    显示的结果:

    7basename("  ",".php")从路径中获取不带后缀的文件名

     

    echo basename("../lianxi.php ",".php"); //从路径中获取不带后缀的文件名

    显示结果:

    8dirname("  ");//取路径中除去文件名的目录

    echo dirname("../lianxi.php"); //取路径中除去文件名的目录

    显示结果:

     

    echo dirname("../0602/0602biaoge.php"); //路径中除去文件名的目录

     

    显示的结果:

    它返回的是,路径中除去文件名的目录

     

    9dirname("  "); +拼上+  basename("  ",".php")

    它们俩拼上之后就是一个完整的路径

     

    10pathinfo(" 路径 ")//返回目录信息,格式为数组

    var_dump(pathinfo("../0602/0602biaoge.php")); //返回目录信息,格式为数组

    显示的结果:

    返回的信息,比较全

    11realpath("路径 ")

    echo realpath("../0602/0602biaoge.php "); //将相对路径转化为绝对路径

    显示结果:

    从根开始

     

     

    一、          操作目录

    1var_dump(glob("../0602/*.php")); //获取目录下所有的文件某个后缀的*.php

    显示的结果:

    【2】用循环来读取   可以获取所有的文件路径

    $attr = glob("../0602/*");

    for($i=0;$i<count($attr);$i++)

    {

          echo $attr[$i]."<br>";

    }

    显示的结果:

    这是找的,文件夹下的,一级

    【3】 使用这个glob(" ”)方法,去计算一下0602的文件夹下的总共有多少文件和目录??

     

    //定义两个变量

    $filenum = 0;

    $dirnum = 0;

    Num("../LIZI");

    echo "文件的数量为:".$filenum."<br>";

    echo "文件夹的数量为:".$dirnum;

    function Num($url)

    {

          global $filenum;  //全局变量

          global $dirnum;   //全局变量

          //判断给的路径是不是文件

          if(is_file($url))

          {

               $filenum = 1;

               return $filenum;

               exit;

          }

         

          //获取目录下所有的子文件

          $attr = glob($url."/*");

         

          //遍历所有的子文件

          foreach($attr as $v)

          {

               if(is_file($v))

               {

                     $filenum++;

               }

               else

               {

                     $dirnum++;

                     Num($v);

               }

          }

    }

     

    显示的结果:

     

    【4】使用这个glob(" ”)方法,去计算一下liuyanban的文件夹下的共有多少文件??

    echo Num("../liuyanban");

    function Num($url)

    {

     

      $filenum = 0;

      //判断给的路径是不是文件

      if(is_file($url))

      {

            $filenum = 1;

            return $filenum;

            exit;

      }

            //获取目录下所有的子文件

      $attr = glob($url."/*");

     

      //遍历所有的子文件

      foreach($attr as $v)

      {

            if(is_file($v))

            {

                  $filenum++;

            }

            else

            {

                  $filenum = $filenum + Num($v);

            }

      }

     

       return $filenum;

    }

    显示的结果:

    5】计算文件夹大小
    echo DirSize("../liuyanban ");
    function DirSize($url)
    {
        //定义变量存储文件大小
        $size = 0;
        
        //判断给的路径是不是文件
        if(is_file($url))
        {
            return filesize($url);
            exit;
        }
        
        //如果是目录,取目录下的所有文件
        $attr = glob($url."/*");
        
        //遍历子文件
        foreach($attr as $v)
        {
            if(is_file($v))
            {
                $size = $size + filesize($v);
            }
            else
            {
                $size = $size + DirSize($v);
            }
        }
        
        return $size;
    }

    显示的结果:

     

    【6】使用目录资源遍历

    $dir = opendir("../tp"); //打开目录资源

     

    echo readdir($dir); //读取目录下的文件,执行一次读一个

     

    while($wj = readdir($dir))

    {

          echo $wj."<br>";

    }

     

    closedir($dir); //关闭目录资源

     

    rewinddir($dir);//将指针重置

     

    使用readdir()读取的第一个和第二个内容

    第一个是. 代表当前目录

    第二个是.. 代表上级目录

    在使用目录资源遍历文件夹的时候要注意将前两个排除

  • 相关阅读:
    AngularJS中实现无限级联动菜单
    理解AngularJS生命周期:利用ng-repeat动态解析自定义directive
    denounce函数:Javascript中如何应对高频触发事件
    Javascript中的循环变量声明,到底应该放在哪儿?
    优雅的数组降维——Javascript中apply方法的妙用
    如何利⽤360Quake挖掘某授权⼚商边缘站点漏洞
    Java课程设计--网络聊天室
    DS博客作业08--课程总结
    DS博客作业07--查找
    DS博客作业06--图
  • 原文地址:https://www.cnblogs.com/yuyu1993/p/5634326.html
Copyright © 2011-2022 走看看