多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 1、打开文件fopen() * 描述:打开文件或者 URL * 语法: ``` resource fopen ( string $filename , string $mode ) ``` * 参数:$filename,指定要打开的目标文件或URL;$mode,指定文件的打开方式。 * 提示:为移植性考虑,在用 fopen()打开文件时总是使用 'b' 标记。binary * 返回值:成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。 ![](https://img.kancloud.cn/b9/0c/b90c71d6994ecca5bc1e770b1628cd02_714x121.png) 以写入方式打开,它自动创建文件 ![](https://img.kancloud.cn/fa/40/fa40a302e510f98b543293ba43650232_744x118.png) ## 2、打开文件的方式 ![](https://img.kancloud.cn/3d/c9/3dc9d986ec5b83cdca1d38a5e0525f8d_635x320.png) ## 3、关闭文件fclose() * 描述:关闭一个已打开的文件指针 * 语法: ``` bool fclose ( resource $handle ) ``` * 参数:$handle必须是由fopen()打开的文件指针。 ![](https://img.kancloud.cn/af/f0/aff0d8fe92d4e454c8854f47912bd115_666x187.png) ## 4、读取指定大小文件内容fread() * 描述:读取文件(可安全用于二进制文件) * 语法: ``` string fread ( resource $handle , int $length ) ``` * 参数:$handle是由fopen()创建的handle;$length最多读取的字节数。 * 提示:在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 ‘b’。 * 返回值:返回所读取的字符串, 或者在失败时返回 FALSE。 ![](https://img.kancloud.cn/f5/0a/f50a741dcf84cd90df428b659a0e9c64_872x492.png) ## 5、读取一行内容fgets() * 描述:从文件指针中读取一行 * 语法: ``` string fgets ( resource $handle [, int $length ] ) ``` * 参数: $handle:文件指针必须是有效的 $length:从 handle指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。 * 返回值:从指针 handle 指向的文件中读取了 length - 1 字节后返回字符串。 如果文件指针中没有更多的数据了则返回 FALSE。 ![](https://img.kancloud.cn/a5/33/a53359631d1bdbece79c54723f165b55_983x376.png) ## 6、读取文件内容到数组中file() * 描述:把整个文件读入一个数组中 * 语法: ``` array file ( string $filename [, int $flags = 0 ] ) ``` * 参数: $filename,文件的路径; $flags,附加选项; FILE_USE_INCLUDE_PATH(1):在include_path 中查找文件; FILE_IGNORE_NEW_LINES(2):在数组的每个元素末尾不添加换行符; FILE_SKIP_EMPTY_LINES(4):跳过空行。 * 注意:不需要打开文件和关闭文件。 ![](https://img.kancloud.cn/99/a3/99a3f318c3d7ca3ab02514b1418c5917_535x139.png) ![](https://img.kancloud.cn/1e/fd/1efd47c238882f8adaa0e52c688334e5_779x241.png) ## 7、读取文件内容到字符串中file_get_contents() * 描述:将整个文件读入一个字符串 ,不用打开文件,也不用关闭文件 * 语法: ``` string file_get_contents ( string $filename ) ``` * 返回:返回读取的数据,或在失败时返回false。 ![](https://img.kancloud.cn/1d/1f/1d1f31bcf75a1f7ebbd625a6a0b55891_956x334.png) ## 8、实例:读取记事本中的内容,并用表格展示出来 ![](https://img.kancloud.cn/39/c4/39c4d79388aa34f2587401caeced4a76_467x154.png) ![](https://img.kancloud.cn/f0/40/f0405f5fef33c498d22ab2e7d5a0450d_894x573.png) ## 9、写入文件 * 描述:写入文件(可安全用于二进制文件) * 语法: ``` int fwrite ( resource $handle , string $string ) ``` * 返回:返回写入的字符数,出现错误时则返回 FALSE 。 ![](https://img.kancloud.cn/eb/ef/ebef772d4d3e593533627010c5e46e43_1016x244.png) ## 10、将一个字符串写入文件 * 描述:和依次调用 fopen(),fwrite()以及 fclose() 功能一样。 * 语法: ``` int file_put_contents ( string $filename , mixed $data [, int $flags = 0] ) ``` * 参数: $filename要被写入数据的文件名。 $data要写入的数据。类型可以是 string,array(一维数组)。 $flags附加选项。 FILE_USE_INCLUDE_PATH(1) 在 include 目录里搜索 filename FILE_APPEND(8)如果文件 filename已经存在,追加数据而不是覆盖。 LOCK_EX(2)在写入时获得一个独占锁。 * 提示:如果文件不存在,则会自动创建。如果文件过大,不能一次性处理。 * 返回:该函数将返回写入到文件内数据的字节数,失败时返回FALSE。 ![](https://img.kancloud.cn/72/2c/722c69641054a984ccd0e1e12a7546dc_708x197.png) ## 11、拷贝文件 * 描述:将文件从 source 拷贝到 dest。 * 语法: ``` bool copy ( string $source , string $dest ) ``` * 提示:如果目标文件存在,则会覆盖。 ![](https://img.kancloud.cn/ed/d5/edd539a1f866242940d33b634e045882_583x96.png) ## 12、删除文件 * 语法: ``` bool unlink ( string $filename ) ``` * 返回:成功时返回 TRUE, 或者在失败时返回 FALSE。 * 提示:可以删除虚拟空间之外的文件,但必须使用相对路径(../),但必须有权限。 * 注意:删除的文件不会进入回收站。 ![](https://img.kancloud.cn/a0/7b/a07b44d56da94d357d3e4814842334b0_601x75.png) ## 13、其它的文件操作函数 * filesize(),可以获取文件大小,单位为字节。 * is_writable(),判断文件是否可写。 * is_readable(),判断文件是否可读。 * feof(),判断文件指针是否到达文件结尾。 * filectime(),获取创建文件的时间。 * fileatime(),获取文件最新访问时间。 * filemtime(),获取文件最后修改时间。