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

    php-文件操作

    文件概述:php里面文件包含目录文件两种

    一.判断文件类型

    var_dump(filetype("./test"));  //判断是文件还是目录
    var_dump(is_file("./aa.txt"));  //判断是否是文件
    is_dir("./test");  //判断是否是目录

    二.文件属性

    echo date("Y-m-d H:i:s",fileatime("./aa.txt"));  //文件的上次访问时间
    filectime("./aa.txt");   //文件的创建时间
    echo date("Y-m-d H:i:s",filemtime("./aa.txt"));  //文件的修改时间
    echo filesize("./aa.txt");  //获取文件大小
    var_dump(file_exists("./aaa.txt"));  //判断文件是否存在

    三.文件路径

    1. ./   当前路径
    2. ../  上级路径

    3. var_dump(file_exists("/wamp/www/aa.jpg"));
       / 代表根,在网页里面代表www目录,在PHP里面代表磁盘根
    4. echo $_SERVER['DOCUMENT_ROOT']; //服务器的根目录
    5. echo basename("./aa.txt"); //获取路径中的文件名
    6. echo dirname("../0428/DBDA.class.php"); //获取路径中的文件夹目录
    7. var_dump(pathinfo("../0428/DBDA.class.php")); //获取路径信息
    8. echo realpath("./aa.txt"); //将相对路径转化成绝对路径

    四.目录操作

    1. mkdir("./aa");  //创建目录
    2. rmdir("./aa");  //删除目录,目录必须为空
    3. rename("./test","../ceshi");  //移动目录 ("old","new")还可以重命名
    4. 遍历目录

    (1)var_dump(glob("./qiyezhan/*.txt")); //获取目录下所有文件
    (2)打开目录,返回目录资源
      $dname = "./qiyezhan";
      $dir = opendir($dname);
    (3)从目录资源里面读文件,每次读一个
      while($fname = readdir($dir))
      {
          echo $dname."/".$fname."<br>";
      }
    (4)关闭目录资源
      closedir($dir);

    (5)rewinddir($dir)  //指针返回最初

    例子1

    题目:获取某个文件夹下所有文件的数量

    <?php
    //造一个函数,给一个文件夹,返回该文件夹下文件数量
    echo fileCount("./qiyezhan");
    
    function fileCount($fname)
    {
        //该文件夹下所有文件数量
        $sum = 0;
        //判断给的是不是文件夹
        if(is_dir($fname))
        {
            //打开文件夹
            $dir = opendir($fname);
            
            while($wenjian = readdir($dir))
            {
                if($wenjian!="." &&$wenjian!="..")
                {
                    //文件的完整路径
                    $furl = $fname."/".$wenjian;
                    if(is_file($furl))
                    {
                        $sum++;
                    }
                    else if(is_dir($furl))
                    {
                        //获取该文件夹下文件数量,累加
                        $sum = $sum + fileCount($furl);
                    }
                }
                
            }
            
            //关闭文件夹
            closedir($dir);
            return $sum;
        }
        else
        {
            echo "给的文件夹不对";
        }
    }
    
    
    
    ?>

    五.文件整体操作

    1. touch("./aa.txt"); //创建文件
    2. copy("./aa.txt","../aa.txt"); //复制文件
    3. unlink("./aa.txt"); //删除文件
    4. echo file_get_contents("http://www.baidu.com"); //读取文件
    5. file_put_contents("11.txt","hello"); //写内容
    6. readfile("./11.txt"); //读取并输出
    7. var_dump(file("11.txt")); //读取文件内容,返回数组,每行是一个元素

    六.文件内容操作

    1. 打开文件资源
        $fp = fopen("文件名","模式 r w")   //$f = fopen("./11.txt","a");
        r只读;r+读写;w写清空;w+读写;a写入文件末尾;a+读写;x创建并以写入打开;x+创建并以读写打开;加一个b代表可操作二进制文件(建议加)
    2. 关闭文件资源
        fclose($f)
    3. 写入内容
        fwrite($f,"aaaaa")
    4. 获取文件内容(一个字符一个字符读)
        fgetc($fp)
    5. feof($fp)  //如果文件出错或到末尾返回true
    6. fgets($fp)    //一次读一行
    7. fread($fp,10)  //读多长

    例子2

    题目:删除文件夹

    <?php
    //给我一个文件夹,删掉
    ShanChu("./qiyezhan");
    function ShanChu($fname)
    {
        if(is_dir($fname))
        {
            //在删除之前,把里面的文件全部删掉
            $dir = opendir($fname);
            while($dname = readdir($dir))
            {
                if($dname!="." && $dname!="..")
                {
                    $durl = $fname."/".$dname;
                    if(is_file($durl))
                    {
                        unlink($durl);
                    }
                    else
                    {
                        ShanChu($durl);
                    }
                }
            }
            closedir($dir);
            //删除该文件夹
            rmdir($fname);    
        }
        else
        {
            //如果是文件,直接删掉
            unlink($fname);
        }
    }
    
    
    
    
    ?>

  • 相关阅读:
    zookeeper报错java.net.ConnectException: Connection refused: no further information
    dubbo 使用zookeeper 出现 Dubbo客户端调用报错NullPointerException
    docker下载镜像received unexpected Http status:500 Internal Server Error
    Spring Security 无法登陆,报错:There is no PasswordEncoder mapped for the id “null”
    js 解决中文乱码的问题
    使用Elasticsearch 出现的拒绝连接
    com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class cn.edu.
    yii2判断数据库字段is null
    MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作
    yii2.0-rules验证规则应用实例
  • 原文地址:https://www.cnblogs.com/zhaohui123/p/6878985.html
Copyright © 2011-2022 走看看