文件以及目录处理集锦

· 文件操作

  1. 读取/写入文件操作:
    fopen() 打开一个文件 指定打开模式
    r 只读方式打开 指针文件开头
    r+ 读写方式打开 指针指向开头
    w 只写方式打开 文件指针指向开头 清空文件 文件不存在会创建文件
    w+ 读写方式打开 文件指针指向开头 清空文件 文件不存在会创建文件
    a 写入追加模式打开 指针指向文件末尾 文件不存在会创建文件
    a+ 读写追加模式打开 指针指向文件末尾 文件不存在会创建文件
    x 创建并以写入的方式打开 指针指向文件开头 文件存在报错 返回false 文件不存在创建文件
    x+ 创建并以读写的方式打开 指针指向文件开头 文件存在报错 返回false 文件不存在创建文件
    b 打开二进制文件

    写入函数:
    fwrite()
    fputs()

    读取函数:
    fread()
    fgets()//获取一行
    fgetc()//获取一个字符

    关闭文件:
    fclose()

    不需要fopen的打开函数:
    file_get_contents()
    file_put_contents()

    其他的读取函数:
    file() //整个文件读取到一个数组中
    readfile() //读取文件 输出到缓冲区

    访问远程文件:
    开启allow_url_fopen,HTTP协议连接只能使用读取,FTP协议可以使用只读或者只写

    目录相关的操作函数:

    • 名称相关:
      basename()
      dirname()
      pathinfo()
    • 目录读取:
      opendir()
      readdir()
      closedir()
      rewinddir()

    • 目录删除:
      rmdir() //目录为空才可以删除

      扫描二维码关注公众号,回复: 3202912 查看本文章
    • 目录创建:
      mkdir()

    • 文件大小:
      filesize()

    • 目录(磁盘)大小:
      disk_free_space()
      disk_total_sapce()

    • 文件拷贝:
      copy()

    • 删除文件:
      unlink()

    • 文件类型:
      filetype()

    • 重命名文件或者目录:
      rename()

    • 文件截取:
      ftruncate()

    • 文件属性:
      file_exists() //文件是否存在
      is_readable() //文件是否可读
      is_writable() //文件是否可写
      is_executable() //文件是否可执行
      filectime() //文件修改时间 文件索引节点(时间 档名 使用者 群组等)改变时间
      fileatime() //文件访问时间
      filemtime() //文件修改时间 文件内容修改时间

    • 文件锁:
      flock()

    • 文件指针:
      ftell()
      fseek()
      rewind()

    注意:删除时候 要过滤 . ..掉 防止递归向上删除

不断在文件test.txt头部写入一行代码“hello world”,要求代码完整

 //打开文件
$dir = './test.txt';
$handle = fopen($dir,'r');
//文件内容读取出来
$content = fread($handle,filesize($dir));
//写好的字符串写到文件
$content = "Hello,world!!!".PHP_EOL.$content;
fclose($handle);
$handle =fopen($dir,'w');
fwrite($handle,$content);
fclose($handle);

通过PHP函数的方式对目录进行遍历

$dir = './demo';
//打开目录
//读取目录文件
//判断如果文件类型是目录 继续打开目录
//读取子目录 的文件
//如果文件类型是文件 输出文件名称
//关闭目录

function  loopDir($dir){
    $handle = opendir($dir);
    $t = fopen('demo.txt','a');//用追加写入模式打开一个文件 把得到的目录写入进去
    //目录指针读取完毕  用这个不全等判断 防止有目录为0跳出循环体
    while(false !==($file=readdir($handle))){
        if($file !='.' && $file != '..'){
            echo $file.PHP_EOL;
            fwrite($t,$file.PHP_EOL);
            if(filetype($dir.'/'.$file)=='dir'){
                fwrite($t,"...".PHP_EOL);
                loopDir($dir.'/'.$file);

            }
        }
    }
    fclose($t);
}
loopDir('./demo');

猜你喜欢

转载自blog.csdn.net/qq_17040587/article/details/82423190