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




?>

原文地址:https://www.cnblogs.com/zhaohui123/p/6878985.html