正文
方法一览
| 函数 | 描述 | PHP |
|---|---|---|
| basename() | 返回路径中的文件名部分。 | 3 |
| chgrp() | 改变文件组。 | 3 |
| chmod() | 改变文件模式。 | 3 |
| chown() | 改变文件所有者。 | 3 |
| clearstatcache() | 清除文件状态缓存。 | 3 |
| copy() | 复制文件。 | 3 |
| delete() | 参见 unlink() 或 unset()。 | |
| dirname() | 返回路径中的目录名称部分。 | 3 |
| disk_free_space() | 返回目录的可用空间。 | 4 |
| disk_total_space() | 返回一个目录的磁盘总容量。 | 4 |
| diskfreespace() | disk_free_space() 的别名。 | 3 |
| fclose() | 关闭打开的文件。 | 3 |
| feof() | 测试文件指针是否到了文件结束的位置。 | 3 |
| fflush() | 向打开的文件输出缓冲内容。 | 4 |
| fgetc() | 从打开的文件中返回字符。 | 3 |
| fgetcsv() | 从打开的文件中解析一行,校验 CSV 字段。 | 3 |
| fgets() | 从打开的文件中返回一行。 | 3 |
| fgetss() | 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 | 3 |
| file() | 把文件读入一个数组中。 | 3 |
| file_exists() | 检查文件或目录是否存在。 | 3 |
| file_get_contents() | 将文件读入字符串。 | 4 |
| file_put_contents() | 将字符串写入文件。 | 5 |
| fileatime() | 返回文件的上次访问时间。 | 3 |
| filectime() | 返回文件的上次改变时间。 | 3 |
| filegroup() | 返回文件的组 ID。 | 3 |
| fileinode() | 返回文件的 inode 编号。 | 3 |
| filemtime() | 返回文件的上次修改时间。 | 3 |
| fileowner() | 文件的 user ID (所有者)。 | 3 |
| fileperms() | 返回文件的权限。 | 3 |
| filesize() | 返回文件大小。 | 3 |
| filetype() | 返回文件类型。 | 3 |
| flock() | 锁定或释放文件。 | 3 |
| fnmatch() | 根据指定的模式来匹配文件名或字符串。 | 4 |
| fopen() | 打开一个文件或 URL。 | 3 |
| fpassthru() | 从打开的文件中读数据,直到 EOF,并向输出缓冲写结果。 | 3 |
| fputcsv() | 将行格式化为 CSV 并写入一个打开的文件中。 | 5 |
| fputs() | fwrite() 的别名。 | 3 |
| fread() | 读取打开的文件。 | 3 |
| fscanf() | 根据指定的格式对输入进行解析。 | 4 |
| fseek() | 在打开的文件中定位。 | 3 |
| fstat() | 返回关于一个打开的文件的信息。 | 4 |
| ftell() | 返回文件指针的读/写位置 | 3 |
| ftruncate() | 将文件截断到指定的长度。 | 4 |
| fwrite() | 写入文件。 | 3 |
| glob() | 返回一个包含匹配指定模式的文件名/目录的数组。 | 4 |
| is_dir() | 判断指定的文件名是否是一个目录。 | 3 |
| is_executable() | 判断文件是否可执行。 | 3 |
| is_file() | 判断指定文件是否为常规的文件。 | 3 |
| is_link() | 判断指定的文件是否是连接。 | 3 |
| is_readable() | 判断文件是否可读。 | 3 |
| is_uploaded_file() | 判断文件是否是通过 HTTP POST 上传的。 | 3 |
| is_writable() | 判断文件是否可写。 | 4 |
| is_writeable() | is_writable() 的别名。 | 3 |
| link() | 创建一个硬连接。 | 3 |
| linkinfo() | 返回有关一个硬连接的信息。 | 3 |
| lstat() | 返回关于文件或符号连接的信息。 | 3 |
| mkdir() | 创建目录。 | 3 |
| move_uploaded_file() | 将上传的文件移动到新位置。 | 4 |
| parse_ini_file() | 解析一个配置文件。 | 4 |
| pathinfo() | 返回关于文件路径的信息。 | 4 |
| pclose() | 关闭有 popen() 打开的进程。 | 3 |
| popen() | 打开一个进程。 | 3 |
| readfile() | 读取一个文件,并输出到输出缓冲。 | 3 |
| readlink() | 返回符号连接的目标。 | 3 |
| realpath() | 返回绝对路径名。 | 4 |
| rename() | 重名名文件或目录。 | 3 |
| rewind() | 倒回文件指针的位置。 | 3 |
| rmdir() | 删除空的目录。 | 3 |
| set_file_buffer() | 设置已打开文件的缓冲大小。 | 3 |
| stat() | 返回关于文件的信息。 | 3 |
| symlink() | 创建符号连接。 | 3 |
| tempnam() | 创建唯一的临时文件。 | 3 |
| tmpfile() | 建立临时文件。 | 3 |
| touch() | 设置文件的访问和修改时间。 | 3 |
| umask() | 改变文件的文件权限。 | 3 |
| unlink() | 删除文件。 | 3 |
解说
file_exists
file_exists(‘文件地址’) // 检查指定文件是否存在
如:
$addr = '/data/log/swoole/swoole_channel_socket.log';
$pid = file_exists($addr) ? file_get_contents($addr) : null;
file_get_contents
file_get_contents('文件地址') // 将文件读入字符串
file_put_contents
file_put_contents('文件地址', '内容字符串', '如何写入文件') // 将字符串写入文件
http://php.net/manual/zh/function.file-put-contents.php
实战
字节流写入文件
项目对接中碰到一个需求,调用抖音API生成二维码,抖音返回二维码的字节流,需要把这个字节流保存在本地,如何实现?
开发中发现 file_put_contents 可以创建文件,却不能创建目录,需要提前准备好目录。
方法:
<?php
// 返回的字节流
$res = "...";
// 指定保存目录
$filePath = './upload/' . date('Ymd');
if (!is_dir($filePath)) {
// 如果目录不存在,则递归创建
mkdir($filePath, 0777, true);
}
// 指定文件名
$filename = uniqid() . ".png";
// 创建并写入字节流
file_put_contents($filePath . "/" .$filename, $res);
也可以 依次调用 fopen(),fwrite() 以及 fclose() 实现。
<?php
$fp = fopen("/tmp/test/dev/index.php", "w"); // w是写入模式,文件不存在则创建文件写入。
$len = fwrite($fp, '测试'); // 返回写入的字节数
fclose($fp);
参考资料
PHP 手册 函数参考 文件系统相关扩展 文件系统 文件系统函数 https://www.php.net/manual/zh/ref.filesystem.php
PHP Filesystem 函数
http://www.w3school.com.cn/php/php_ref_filesystem.asp
http://www.runoob.com/php/php-ref-filesystem.html
readfile() http://www.w3school.com.cn/php/php_file.asp
PHP 文件打开/读取/读取 http://www.w3school.com.cn/php/php_file_open.asp
PHP 文件创建/写入 http://www.w3school.com.cn/php/php_file_create.asp
PHP 文件处理 http://www.runoob.com/php/php-file.html
PHP 文件上传
http://www.runoob.com/php/php-file-upload.html
http://www.w3school.com.cn/php/php_file_upload.asp
POST 方法上传 http://php.net/manual/zh/features.file-upload.post-method.php
文件上传处理 http://php.net/manual/zh/features.file-upload.php
使用远程文件 http://php.net/manual/zh/features.remote-files.php
PHP 手册 函数参考 文件系统相关扩展 文件系统 文件系统函数 file_put_contents https://www.php.net/manual/zh/function.file-put-contents.php