什么是PHP文件处理?
PHP文件处理指的是使用PHP内置函数对服务器上的文件进行读写、创建和删除、以及修改文件目录等操作。
为什么需要PHP脚本进行文件处理?
无论是处理用户上传的图片/文档、生成配置文件、记录运行日志,还是实现数据导出(如CSV/Excel),都需要通过文件操作才能实现。
我们可以使用PHP内置的文件处理函数对文件进行不同的操作,下面我们可以通过一张表格来总览常用的PHP文件操作内置函数:
| 函数 | 功能 |
|---|---|
file_get_contents() | 将整个文件读入字符串,支持远程URL |
file_put_contents() | 将字符串写入文件,可追加内容 |
fopen() | 打开文件或URL,返回文件指针资源 |
fclose() | 关闭由fopen()打开的文件指针 |
fread() | 从打开的文件中读取指定长度的数据 |
fwrite() / fputs() | 向打开的文件写入字符串内容 |
fgets() | 从打开的文件中读取一行内容 |
file() | 将整个文件读入数组,每行作为数组元素 |
copy() | 复制文件到新位置 |
rename() | 重命名或移动文件/目录 |
unlink() | 删除文件 |
file_exists() | 检查文件或目录是否存在 |
is_file() | 判断给定路径是否为常规文件 |
is_dir() | 判断给定路径是否为目录 |
filesize() | 获取文件大小(字节) |
filemtime() | 获取文件最后修改时间(时间戳) |
fileatime() | 获取文件最后访问时间 |
filectime() | 获取文件inode修改时间 |
pathinfo() | 返回文件路径的信息(目录、文件名、扩展名等) |
basename() | 返回路径中的文件名部分 |
dirname() | 返回路径中的目录部分 |
realpath() | 返回规范化的绝对路径名 |
mkdir() | 创建目录,可递归创建多级目录 |
rmdir() | 删除空目录 |
scandir() | 列出指定路径中的文件和目录 |
glob() | 使用通配符查找匹配的文件路径 |
move_uploaded_file() | 将上传的文件移动到新位置(安全) |
tempnam() | 创建具有唯一文件名的临时文件 |
tmpfile() | 创建临时文件并返回文件指针 |
flock() | 文件锁定(共享锁或独占锁) |
ftruncate() | 将文件截断到指定长度 |
fseek() | 在文件指针中定位 |
ftell() | 返回文件指针读/写的位置 |
rewind() | 倒回文件指针的位置 |
feof() | 测试文件指针是否到达文件末尾 |
readfile() | 读取文件并写入输出缓冲,支持下载 |
parse_ini_file() | 解析INI配置文件 |
csv相关函数 | fgetcsv()读取CSV行,fputcsv()写入CSV行 |
下面,我们具体实操一下PHP文件操作(打开文件->进行操作->关闭文件):
我们有一个test.php文件,需要同级目录下生成一个example.php文件,打开该文件同时对其进行脚本写入,让example.php文件打印”Hello Dotcpp编程!“,然后关闭文件。
<?php
// 1. 定义要创建的文件名
$filename = 'example.php';
// 2. 创建文件并写入PHP代码
if ($file = fopen($filename, 'w')) {
//fopen的第二个参数可填:
// 'r' - 只读打开
// 'r+' - 读写打开
// 'w' - 只写打开
// 'w+' - 读写打开
// 'a' - 追加写入
// 'a+' - 读写追加
// 'x' - 只写创建
// 'x+' - 读写创建
// 'c' - 只写打开
// 'c+' - 读写打开
// 写入PHP起始标签和打印语句
fwrite($file, "<?php\n");
fwrite($file, "echo \"Hello Dotcpp编程!\\n\";\n\n");
fwrite($file, "?>\n");
// 3. 关闭文件
fclose($file);
echo "<h2>文件创建成功!</h2>";
echo "<p>文件 <strong>{$filename}</strong> 已创建在相同目录下。</p>";
echo '<p><a href="example.php" target="_blank">点击运行 example.php</a></p>';
}
?>具体演示:
1. 打开test.php,我们可以看到:

2. 点击连接后跳转example.php,我们可以看到”Hello Dotcpp编程!“:

总结:通过PHP强大的文件处理功能,我们可以实现日志、文件存储等实际需求。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程