文件及目录处理

文件读取/写入操作

打开函数:

  • fopen()

用来打开一个文件,打开时需要指定打开模式

打开模式r/r+、w/w+、a/a+、x/x+、b、t

写入函数:

  • fwrite()

  • fput()

读取函数

  • fread()

  • fgets()-获取一行

  • fgetc()-获取一个字符

关闭文件函数

  • fclose()

不需要fopen打开的函数

  • file_get_contents()

  • file_put_contents()

其他读取函数

  • file()

  • readfile()

访问远程文件

开启allow_url_fopen,HTTP协议连接只能使用只读,FTP协议可以使用只读或者只写

只要这样才能通过fopen()和file_get_contens()来进行远程读取

目录操作函数:

  • 名称相关:basename(),dirname(),pathinfo()

  • 目录读取:opendir()、readdir()、closedir()、rewinddir()

  • 目录删除:rmdir() - 目录为空才能进行删除

  • 目录创建:mkdir()

  • 文件大小:filesize()

  • 目录大小:disk_free_space() - 磁盘剩余空间、disk_total_space()

  • 文件类型:filetype()-常见文件或目录

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

  • 文件截取ftruncate()

  • 文件属性:file_exists()、is_readable()、is_writable()、is_executable()、filectime()、fileatime()、filemtime()

示例:

不断在文件hello.txt头部写入一行"hello world" 字符串,要求代码完整

<?php

// 打开文件
//
// 将文件的内容读取出来,在开头加入Hello World
//
// 将拼接好的字符串写回到文件当中
//
// Hello abcefg
//
$file = './hello.txt';

$handle = fopen($file, 'r');

$content = fread($handle, filesize($file));

$content = 'Hello World'. $content;

fclose($handle);

$handle = fopen($file, 'w');

fwrite($handle, $content);

fclose($handle);

循环遍历目录

<?php

$dir = './test';

// 打开目录
// 读取目录当中的文件
// 如果文件类型是目录,继续打开目录
// 读取子目录的文件
// 如果文件类型是文件,输出文件名称
// 关闭目录
//

function loopDir($dir)
{
    $handle = opendir($dir);

    while(false!==($file = readdir($handle)))
    {
        if ($file != '.' && $file != '..')
        {
            echo $file. "\n";
            if (filetype($dir. '/'. $file) == 'dir')
            {
                loopDir($dir. '/'. $file);
            }
        }
    }
}

loopDir($dir);

Last updated