文件操作

<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);

 
原文地址:https://www.cnblogs.com/kevin2016/p/5537477.html