美文网首页
PHP文件操作

PHP文件操作

作者: XZ阳光小熊 | 来源:发表于2016-06-04 21:38 被阅读763次

和数据库操作一样,操作文件同样也分为打开文件,读取文件,写入文件和关闭文件四步。

一、打开关闭文件

1、fopen()函数打开文件,它有两个参数第一个是文件名,第二个是打开方式。

    // 获取文件路径
    $filePath = "psg.txt";

    // 打开文件,将资源绑定到一个流或者句柄,绑定之后,脚本就可以通过句柄与此资源交互。
    $fileHandle = fopen($filePath, "a+");

fopen()函数第二个参数可能的值

mode 说明
r 只读方式打开,文件从头开始读。
r+ 读写方式打开,文件从头开始读写。
w 只写方式打开文件,从文件开头开始写。如果文件已经存在,将文件指针指向文件头并将文件大小截为零,即删除所有文件已有的内容,如果文件不存在,函数将创建这个文件。
w+ 读写方式打开文件,如果文件已经存在,将文件指针指向文件头并将文件大小截为零。即删除所有文件已有的内容,如果文件不存在,函数将创建这个文件。
a 写入方式打开,将文件指针指向文件末尾。如果该文件已有内容,将从文件末尾开始追加,如果该文件不存在,函数将创建这个文件。
a+ 读写方式打开,将文件指针指向文件末尾。如果该文件已有内容,将从文件末尾开始追加或者读,如果该文件不存在,函数将创建这个文件。

2、fclose() 关闭文件。文件指针必须有效,并且是通过fopen()或fsockopen()成功打开的文件。虽然每个请求最后都会自动关闭文件,但明确的关闭打开的所有文件是一个好的习惯。

    // 打开文件
    fopen("psg.txt");
    // 关闭文件
    fclose("psg.txt");

二、读取文件

php提供了很多从文件中读取数据的方法,不仅可以一次只读取一个字符,还可以一次读取整个文件。
1、fread()函数从指定的资源中读取length个字符当到达EOF(文件结束符)或者读取到length个字符时读取将停止。

    // 获取文件路径
    $filePath = "psg.txt";
    // 打开文件
    $fileHandle = fopen($filePath, "a+");
    // fread()读取文件   要读取文件的最大字节数,3个字节表示一个汉字
    // filesize()读取整个文件
    $str = fread($fileHandle, filesize($filePath));
    echo $str;

filesize()函数读取整个文件。

读取的文件内容

2、fgets()函数从handle(句柄)指定的资源中读取一行字符。碰到换行符(包括在返回值中)、EOF或者已经读取了length-1字节后停止(看先碰到哪一种情况)。

    // 获取文件路径
    $filePath = "psg.txt";
    // 打开文件
    $fileHandle = fopen($filePath, "a+");

    //fgets()从句柄中指定的资源中按某一标准读取一行字符。
    while ($str = fgets($fileHandle)) { //遍历读取全部内容
        echo nl2br($str); //按换行符读取
    }

注意如果没有指定length,则默认为1K,或者说1024字节。

3、file()函数将文件读取到数组中,各元素由换行符分隔。

    // file()将文件读取到数组中,按换行符分隔
    $arr = file("psg.txt");
    print_r($arr);
打印数组内容

4、file_get_contents()函数将文件内容读取到字符串中。

    // file_get_contents()将文件内容读到字符串中
    echo file_get_contents("psg.txt");
打印字符串

三、写入文件

1、fwrite()将内容写入到打开的文件中,如果指定length参数,将在写入length个字符时停止,成功返回字节数,失败返回false。

    // fwrite()将内容写入到打开的文件中,成功返回字节数,失败返回false
    echo fwrite($fileHandle, "\n上兵伐谋,其次伐交,\n其次伐兵,其下攻城。");
代码执行效果

2、file_put_contents(file,data,mode,context)函数把一个字符串写入文件中。 后两个参数可选,如果文件不存在,将会创建一个文件,成功返回字节数量。

file文件名。
data要写入的字符串。
mode有多个可选值其中FILE_APPEND表示在文件末尾插入内容。

    // 在文件末尾插入内容
    echo file_put_contents($filePath,"\n上兵伐谋,其次伐交,\n其次伐兵,其下攻城。", FILE_APPEND);

    // 创建文件并插入内容
    echo file_put_contents("liangxi.txt","胜败兵家事不期,\n包羞忍辱是男儿;\n江东子弟多才俊,\n卷土重来未可知。");

四、复制、重命名、删除文件

1、copy() 复制文件 成功返回true,失败返回false

    // copy() 复制文件 成功返回true,失败返回false
    echo copy($filePath, "liangxi.txt");

2、rename(oldname,newname) 函数重命名文件或目录,成功返回true,失败返回false

    // rename(oldname,newname) 函数重命名文件或目录,成功返回true,失败返回false
    rename($filePath, "sunzibingfa.txt");

3、unlink() 函数删除文件,成功返回true,失败返回false

    // unlink() 函数删除文件,成功返回true,失败返回false
    unlink("sunzibingfa.txt");

五、读取目录

1、opendir()打开目录句柄。

2、 closedir()关闭目录句柄。

3、readdir()返回指定目录中的各个元素。可以使用此函数列出给定目录中的所有文件和子目录。

    // opendir()打开目录句柄
    $dirHandle = opendir(".");

    // 读取文件 返回目录中的文件
    while ($file = readdir($dirHandle)) {
        echo $file . "<hr/>";
    };

    // 关闭目录
    closedir($dirHandle);

. 表示当前目录

当前文件目录

4、scandir()获取目录中的所有文件和子目录放到数组中。

    // 获取所有文件放到数组中
    $arr = scandir(".");
    var_dump($arr);
打印数组

5、mkdir() 创建文件夹

6、rmdir() 删除文件夹

    // 创建文件夹,注意文件夹只能逐级创建,然后逐级删除
    mkdir("newfile");
    mkdir("newfile/file");

    rmdir("newfile/file");
    rmdir("newfile");

六、其他文件操作函数

1、filesize() 取得文件的大小,以字节为单位。

    echo filesize("test.txt");

2、filectime() 获取指定文件最后修改时间,单位为s。

3、fileatime() 获取文件最后访问的时间。

4、filemtime() 获取文件内容最后修改时间。

    // 获取指定文件的上次修改时间,单位为s
    echo filectime("test.txt");
    echo "Last change: ".date("F d Y H:i:s.",filectime("test.txt"));

    echo "<hr/>";

    // 获取文件上次访问的时间
    echo fileatime("test.txt");
    echo "Last change: ".date("F d Y H:i:s.",fileatime("test.txt"));
    echo "<hr/>";

    // 获取文件内容最后修改时间,修改情况是指:权限的修改、所有者的修改、用户组的修改或其他元数据的修改。
    echo filemtime("test.txt");
    echo "Last change: ".date("F d Y H:i:s.",filemtime("test.txt"));

代码执行效果 代码执行效果

5、file_exists() 检查文件是否存在,存在返回true否则返回false。

// 检查文件是否存在,存在返回true否则返回false。
file_exists("test.txt");

6、is_readable() 判断文件是否可读,如果文件存在并且可读,存在返回true否则返回false。

7、is_writable() 判断文件是否可写,如果文件存在并且可写,存在返回true否则返回false。

七、解析目录路径函数

1、basename(string path, suffix) 获取文件名,可指定可选参数suffix会将这部分内容去掉。

2、dirname() 获取目录名

3、pathinfo() 返回关联数组,包含目录,文件名,扩展名。

    $path = "PHP/four/test.txt";
    // 获取文件名
    echo basename($path, ".txt");

    echo "<hr/>";
    // 获取目录名
    echo dirname($path);

    echo "<hr/>";
    // 返回关联数组,包含目录,文件名,扩展名
    print_r(pathinfo($path));
代码执行效果

4、chmod() 函数改变指定文件的权限,如果成功则返回 TRUE,如果失败则返回 FALSE。


以上内容纯属个人理解,由于本人水平有限,若有错漏之处,敬请指出改正,谢谢!

相关文章

  • PHP 文件操作

    创建写入文件 就会在同级目录下创建一个roy.text,并且内容为Hello! 读取文件

  • php 文件操作

    文件读取内容 方式一: 方式二: 方式三: 判断文件是否存在 判断是否是文件 file_exists不仅可以判断文...

  • PHP文件操作

    和数据库操作一样,操作文件同样也分为打开文件,读取文件,写入文件和关闭文件四步。 一、打开关闭文件 1、fopen...

  • 6.PHP文件编程

    思考:在进行PHP开发的时候,有时候会需要对文件进行操作,例如文件夹管理和文件管理等,这些操作PHP有提供扩展吗?...

  • 文件系统

    PHP文件系统之读取文件内容 PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_conten...

  • PHP学习笔记 - 进阶篇(7)

    文件操作 读取文件内容 PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,...

  • Learn PHP

    title: PHP学习笔记date: 2016-07-07 11:33:29tags: PHP php文件操作的...

  • 文件处理和上传

    PHP 文件处理和上传 如何判断文件和文件夹 文件的属性 文件的操作 这段我整体是查阅PHP的手册完成--大家参考...

  • php 安装swoole

    操作系统:CentOS php安装目录:/usr/local/php php.ini配置文件路径:/usr/loc...

  • 实现简单登陆注册功能流程分析

    一:思路分析 用户前端注册账号时,我们前端需要使用ajax访问后端文件(下面以php文件举例),通过php文件操作...

网友评论

      本文标题:PHP文件操作

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