php文件操作

文件操作

<?php
//文件:文件和文件夹(目录)
filetype("./aa.txt"); //判断文件类型,如果是文件返回file,如果是目录返回dir。
var_dump(is_dir("./test"));//判断给的路径是不是目录
is_file("./aa.txt");//判断给的路径是不是文件

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

//文件路径
//当前目录:./
//上级:../
//下级:文件夹名/
//根目录:/
//根目录/有两层意思:如果在PHP里:代表硬盘根目录    在网页里:代表服务器的根目录(www)目录

//做文件上传(头像,产品图片),保存在数据库的路径一定要写绝对路径
echo $_SERVER['DOCUMENT_ROOT'];//取服务器的(www)根目录
echo basename("./aa.txt");//路径中获取文件名
echo basename("./aa.txt",".txt");//路径中获取文件名(去掉后缀)
echo dirname("./test/bb.txt");//路径中目录名
var_dump(pathinfo("./test/bb.txt"));//返回文件信息(数组)
echo realpath("./test/bb.txt");//返回规范化的绝对路径(将相对路径转为绝对路径)

//目录操作
var_dump(glob("./Users/*.php"));//返回该目录下所有.php文件数组


function ShuLiang($filename)
{
    if(is_dir($filename))
    {
        $attr = glob("./Users/*");
        $s1=0;
        foreach($attr as $v)
        {
            
            if(is_dir($v))
            {
                $s1=$s1+ShuLiang($v);
            }
            else
            {
                $s1++;
            }
        }
        return $s1;
    }
    else if(is_file($filename))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
//调用目录的第二种方式
$dir = opendir("./Users/zfz");//打开目录资源

echo readdir($dir);//.当前文件(返回目录的一个文件,读一次指针向下走,注意前两个)
echo readdir($dir);//上级文件..
echo readdir($dir);//文件

while($v=readdir($dir))
{
    if($v=="."||$v=="..")
    {
        
    }
    else
    {
        echo $v."<br />";
    }
}
//读出所有数据
closedir($dir);//关闭目录资源
rewinddir($dir);//指针返回最初

//目录操作
mkdir("./aa");//创建目录
rmdir("./aa");//目录必须为空才可以删除

rename("./test","./testt");//重命名,移动目录文件
    
touch("./cc.txt");//创建文件
copy("./cc.txt","../cc.txt");//复制文件
unlink("./cc.txt");//删除文件
    
echo file_get_contents("./aa.txt");//读取文件内容(本地)
//echo file_get_contents("http://www.baidu.com");//读取文件内容(远程)

file_put_contents("aa.txt","ih hello");//写入文件内容(覆盖)

readfile("./aa.txt");//读取文件并输出

var_dump(file("aa.txt"));//将文件中每行数据放到数组


//打开文件资源
$fp = fopen("./aa.txt","r");
//r只读;r+读写;w写清空;w+读写;a写入文件末尾;a+读写;
//x创建并以写入打开;x+创建并以读写打开;加一个b代表可操作二进制文件(建议加)

echo fgetc($fp);//获取文件内容(一个字符一个字符读)

while($v=fgetc($fp))
{
    echo $v;
}

echo fgets($fp)."<br/>";//获取文件内容(一次读一行)
echo fgets($fp);

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

fwrite($fp,"aaa的aa");//写入内容,w方式会覆盖
    
原文地址:https://www.cnblogs.com/zhaimiaoer/p/5528480.html