文件操作

Posted 。。小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。

 文件操作

 1.只能操作服务器的文件

 2.文件包含目录和文件

 

 判断文件类型

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

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

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

 

 文件属性

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

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

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

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

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

 

 文件路径

 当前路径:./  上级目录:../  下级目录:目录/  根路径:/

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

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

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

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

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

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

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

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

 目录操作

 1.创建目录(文件夹)

 mkdir("./test");

 2.删除目录(文件夹)只能删除空的文件夹

 rmdir("./test");

 3.移动目录(文件夹)

 rename("./test","../test11");

 

 文件操作

 touch("./test.txt"); 创建文件

 copy("./test.txt","../test.txt");  复制文件

 unlink("./test.docx");  删除文件

 

 echo file_get_contents("./test.txt");  获取文件内容:txt 页面

 echo file_get_contents("http: www.baidu.com");  远程获取内容

 file_put_contents("./test.txt","hello");  向文件写入内容

 readfile("./test.txt");  获取文件内容并且直接输出

 var_dump(file("./test.txt"));  读取文件内容,返回数组,数组的每个元素对应的是一行

 

 对文件内容进行操作

 1.打开文件资源

 $fp = fopen("./test.txt","a");

 

 操作文件

 echo fgetc($fp);  每次读一个字符

/*while(!feof($fp))  判断文件是否读到末尾

{

         echo fgetc($fp);

}*/

 echo fgets($fp);  每次读一行

 echo fgets($fp);

 

 echo fread($fp,10);  读取特定长度

 $str = "ni hao dhakhdak \r\n akdhka";

 $str = iconv("utf-8","gb2312",$str);

 

 fwrite($fp,$str);

 

 2.关闭文件资源

 fclose($fp);

获取文件夹数目和文件数

$filename=0;
 $dirnum=0;
function Num($url)
{    global $filename;
     global $dirnum;
     
    //判断是不是文件
    if(is_file($url))
    {
        $filename=1;
        return $filename;
        break;
    }
    //获取目录下所有子文件
    $attr=glob($url."/*");
    //遍历
    foreach ($attr as $v)
    {
        if(is_file($v))
        {
            $filename++;
            
        }
        else
        {
            $dirnum++;
            Num($v);
        }
    }
    
}

 计算文件大小

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

 

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

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

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

代码片段 - Golang 实现集合操作

Apollo Codegen 没有找到生成代码的操作或片段

VSCode自定义代码片段——.vue文件的模板

操作栏标签片段中的片段?