美文网首页
文件及目录相关处理问题

文件及目录相关处理问题

作者: 陈智涛 | 来源:发表于2017-09-03 15:08 被阅读0次

    一、文件的读写操作

    打开文件

    fopen

    打开文件或者 URL
    resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
    fopen中mode的几种参数介绍:
    'r':只读方式打开,将文件指针指向文件头。
    'r+':读写方式打开,将文件指针指向文件头。
    'w':写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

    屏幕快照 2017-09-03 下午12.56.38.png

    写入函数

    1. fwrite

    写入文件(可安全用于二进制文件)
    int fwrite ( resource $handle , string $string [, int $length ] )

    fwrite() 把 string 的内容写入 文件指针 handle 处。
    fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。

    2.fputs

    fputs — fwrite的别名

    读取函数

    1.fread

    读取文件(可安全用于二进制文件)
    string fread ( resource $handle , int $length )
    返回所读取的字符串, 或者在失败时返回 FALSE。
    fread() 从文件指针 handle 读取最多 length 个字节。 该函数在遇上以下几种情况时停止读取文件:

    • 读取了 length 个字节
    • 到达了文件末尾(EOF)

    2.fgets

    从文件指针中读取一行
    string fgets ( resource $handle [, int $length ] )
    参数 length:
    从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

    3.fgetc:

    从文件指针中读取字符

    关闭文件

    fclose

    不需要fopen打开的函数

    file_get_content

    file_put_content

    其他读取函数

    file

    把整个文件读入一个数组中

    readfile

    输出文件,读取文件并写入到输出缓冲。

    访问远程文件

    屏幕快照 2017-09-03 下午1.22.58.png

    二、目录相关操作

    名称相关

    basename

    返回路径中的文件名部分

    dirname

    返回路径中的目录部分

    pathinfo

    返回文件路径的信息

    <?php
    $path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
    
    echo $path_parts['dirname'], "\n";
    echo $path_parts['basename'], "\n";
    echo $path_parts['extension'], "\n";
    echo $path_parts['filename'], "\n"; // since PHP 5.2.0
    ?>
    
    

    输出

    /www/htdocs/inc
    lib.inc.php
    php
    lib.inc
    

    目录读取

    opendir

    打开目录句柄
    resource opendir ( string $path [, resource $context ] )
    打开一个目录句柄,可用于之后的 closedir()readdir()rewinddir() 调用中。

    closedir

    关闭目录句柄

    readdir

    readdir — 从目录句柄中读取条目

    rewinddir

    倒回目录句柄

    目录读取

    rmdir
    前提是该目录为空,没有文件或者其他目录

    文件大小

    filesize

    文件拷贝

    copy
    bool copy ( string $source , string $dest [, resource $context ] )

    文件移动

    rename
    bool rename ( string $oldname , string $newname [, resource $context ] )

    文件删除

    unlink
    bool unlink ( string $filename [, resource $context ] )

    文件类型

    filetype
    文件或者目录

    文件锁

    flock

    示例

    1、在文件的开头写入helloworld 执行一次,写入一次,不得覆盖后面的内容

    <?php
    
    // 打开文件
    //
    // 将文件的内容读取出来,在开头加入Hello World
    //
    // 将拼接好的字符串写回到文件当中
    //
    // Hello 7891234567890
    //
    $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);
    

    2、遍历目录

    <?php
    $dir = "./dirtest";
    function loopDir($dir){
        $handle = opendir($dir);
        while(false !== ($file=readdir($handle)) ){  
            if($file != '.' && $file != '..' && $file != '.DS_Store'){
                echo $file ."\n";
                if(filetype($dir.'/'.$file) == 'dir'){
                    loopDir($dir. '/'. $file);
                }
            }
    
        }
        closedir($handle);
    
        
    }
    loopdir($dir);
    

    相关文章

      网友评论

          本文标题:文件及目录相关处理问题

          本文链接:https://www.haomeiwen.com/subject/rqzdjxtx.html