PHP-------- 文件操作

Posted 玉育

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()读取的第一个和第二个内容

第一个是. 代表当前目录

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

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

以上是关于PHP-------- 文件操作的主要内容,如果未能解决你的问题,请参考以下文章

php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip

VSCode自定义代码片段——git命令操作一个完整流程

超级有用的9个PHP代码片段

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)