• 文件操作


    <body>
    
    <?php
    //文件:文件+文件夹(目录)
    
    //获取文件类型,如果是文件返回 file ,如果是目录返回 dir
    var_dump(filetype("./aa.txt"));
    var_dump(filetype("./aa"));
    
    var_dump(is_dir("./aa"));//判断给定的路径是不是目录
    var_dump(is_file("./aa.txt"));//判断给定的路径是不是文件
    
    echo date("Y-m-d H:i:s",fileatime("./aa.txt"));//获取文件的上次访问时间,fileatime
    echo date("Y-m-d H:i:s",filectime("./aa.txt"));//获取文件的创建时间,filectime
    echo date("Y-m-d H:i:s",filemtime("./aa.txt"));//获取文件的修改时间,filemtime
    
    echo filesize("./aa.txt");//获取文件的大小
    
    var_dump(file_exists("./aa.txt"));//判断文件是否存在
    
    
    /*
    文件路径
    1.当前目录:./  或者不写
    2.上级目录:../
    3.下级目录:文件夹名/
    4.根目录:/
    根目录/有两层意思:
     如果 / 是在php程序里面的话代表:  硬盘根目录
     如果 / 是在网页里的话代表:      代表服务器的根目录(www)
    */
     
    //(重点)做文件上传头像,产品图片,保存在数据的路径一定要写绝对路径
    
    //echo $_SERVER['DOCUMENT_ROOT'];//取服务器www的根目录
    
    /*
    echo basename("aa.txt");//从路径中获取文件名
    echo basename("aa.txt",".txt");//返回没有后缀的文件名
    echo dirname("./aa/bb.txt");//返回路径中的目录,不要文件名
    */
    
    //var_dump(pathinfo("./aa/bb.txt"));//返回文件信息,二维数组
    
    //echo realpath("./aa/bb.txt");//将相对路径转为绝对路径
    
    
    //目录操作
    
    var_dump(glob("./img/tmp/*"));//返回目录下所有的文件
    var_dump(glob("./img/tmp/*.txt"));//可以根据后缀筛选所有文件
    
    
    /*
    遍历目录
    要求:获取文件夹下所有文件个数
    */
    //方法1:
    //做一个 递归函数
    function Shuliang($filename)
    {
        if(is_dir($filename))
        {    
            $attr= glob($filename."/*");
            $sl=0;
            foreach($attr as $v)
            {
                if(is_dir($v))
                {
                    $sl+= Shuliang($v);
                }
                else
                {
                    $sl++;
                }        
            }
            return $sl;
        }
        else 
        {
            if(is_file($filename))
            {
                return 1;
            }
            else
            {
                return 0;
            }
        }
        
    }
    
    $filename = "./img";
    $sl = Shuliang($filename);
    echo $sl;
    
    
    //方法2:
    //打开目录资源(推荐使用)
    $dir = opendir("./img");
    
    /*
    echo readdir($dir)."<br />";//读文件 .  当前目录
    echo readdir($dir)."<br />";//读文件 .. 上级目录
    echo readdir($dir)."<br />";//读文件,从第三个开始是真正的文件
    echo readdir($dir)."<br />";//读文件,依次读取。。。。。
    */
    
    while($v = readdir($dir))
    {
        if($v=="." || $v=="..")
        {
            
        }
        else
        {
            echo $v."<br />";
        }
    }
    //rewinddir($dir);//重置目录资源的指针
    //关闭目录资源
    closedir($dir);
    
    /*<?php
    $dir = opendir("./img");
    while($v = readdir($dir))
    {
        if($v=="." || $v=="..")
        {}
        else
        {
            echo $v."<br />";
        }    
    }
    closedir($dir);
    
    打开目录资源,遍历目录
    ?>*/
    ?>
    
    
    
    </body>
    </html>





    <?php
    //目录操作
    mkdir("./aa"); //创建目录
    rmdir("./test"); //删除目录,只能删除空文件夹
    rename("./test","./aa/test");//(从左移动到右边,右边创造建被移动的文件名,)重命名、移动文件夹

    //文件操作

    touch("./aa.txt");//创建文件
    copy("./aa.txt","../xx.txt"); //复制文件(从左复制到右,新建名称)
    unlink("./aa.txt");//删除文件

    echo file_get_contents("./aa.txt"); //读取文件内容
    echo file_get_contents("http://www.baidu.com"); //读取远程文件
    file_put_contents("./aa.txt",file_get_contents("http://www.baidu.com"));//向文件里面写入内容
    file_put_contents("./aa.txt","HELLO");

    readfile("./aa.txt");//读取文件内容并显示
    var_dump(file("./aa.txt")); //读取文件内容,并且返回数组,数组里面存的是每一行


    //文件内容操作

    $fp = fopen("./aa.txt","a");//打开文件资源

    fwrite($fp,"aaaaaa"); //写入内容,w方式会覆盖,a方式会追加

    while($v = fgetc($fp)) //读取文件内容,一个一个字符读取
    {
    echo $v;
    }

    echo fgets($fp); //获取文件一行内容,一行一行获取

    echo fread($fp,2); //读取文件内容,可以读取特定长度的内容

    fclose($fp);//关闭文件资源


    //文件夹操作

    $dir = opendir("./aa");

    while($v = readdir($dir))
    {
    echo $v."<br>";
    }

    closedir($dir);

     
  • 相关阅读:
    2018-4-17-软件设计-白话依赖注入
    2018-2-13-wpf-PreviewTextInput-在鼠标输入获得-_u0003
    2018-5-23-为何-987654321_123456789-的值是-8.0000000729
    寄存器位写操作
    Linux多IP配置
    Kconfig和Makefile
    linux设置网卡速率
    Winmanager,NERDTree和MiniBufExplorer
    SuperTab
    ping
  • 原文地址:https://www.cnblogs.com/kevin2016/p/5537477.html
Copyright © 2020-2023  润新知