一文带你掌握PHP中常见的文件操作
文件操作是PHP开发中必不可少的一项技能,它可以让开发者与服务器上的文件进行交互,实现各种各样的功能,例如:
PHP提供了丰富的文件操作函数,可以满足各种文件操作需求。以下是一些常用的PHP文件操作函数:
1. 打开文件:
PHP
$fp = fopen('filename.txt', 'mode');
filename.txt
: 要打开的文件路径mode
: 打开文件的模式,常用模式有:
r
: 只读w
: 写入,会覆盖现有内容a
: 追加,在文件末尾追加内容x
: 创建新文件,如果文件存在则失败b
: 二进制模式2. 读取文件内容:
PHP
$content = fread($fp, $length);
$fp
: 文件句柄$length
: 要读取的字节数,如果省略则读取整个文件3. 写入文件内容:
PHP
$bytesWritten = fwrite($fp, $content);
$fp
: 文件句柄$content
: 要写入的内容4. 关闭文件:
PHP
fclose($fp);
$fp
: 文件句柄5. 检查文件是否存在:
PHP
$exists = file_exists('filename.txt');
filename.txt
: 要检查的文件路径6. 获取文件信息:
PHP
$fileInfo = stat('filename.txt');
filename.txt
: 要获取信息的的文件路径$fileInfo
: 存储文件信息的数组,包含文件大小、创建时间、修改时间等信息7. 创建文件:
PHP
$success = touch('newfile.txt');
newfile.txt
: 要创建的文件路径8. 删除文件:
PHP
$success = unlink('filename.txt');
filename.txt
: 要删除的文件路径9. 重命名文件:
PHP
$success = rename('oldname.txt', 'newname.txt');
oldname.txt
: 旧文件名newname.txt
: 新文件名10. 遍历目录:
PHP
$dir = 'dir';
foreach (scandir($dir) as $filename) {
if ($filename != '.' && $filename != '..') {
echo $filename . "\n";
}
}
dir
: 要遍历的目录路径scandir()
: 扫描目录并返回包含文件和目录名称的数组foreach
循环遍历数组中的每个元素11. 上传文件:
PHP
if ($_FILES['uploadFile']['error'] == UPLOAD_ERR_OK) {
$tmpName = $_FILES['uploadFile']['tmp_name'];
$newName = 'uploaded_' . $_FILES['uploadFile']['name'];
if (move_uploaded_file($tmpName, $newName)) {
echo 'File uploaded successfully!';
} else {
echo 'Failed to upload file.';
}
} else {
echo 'Upload error: ' . $_FILES['uploadFile']['error'];
}
$_FILES['uploadFile']
: 上传的文件信息UPLOAD_ERR_OK
: 上传成功move_uploaded_file()
: 将上传的临时文件移动到指定位置12. 下载文件:
PHP
$filePath = 'filepath.txt';
if (file_exists($filePath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filePath) . '"');
header('Content-Length: ' . filesize($filePath));
readfile($filePath);
exit;
} else {
echo 'File not found.';
}
filepath.txt
: 要下载的文件路径示例代码:
PHP
// 读取文件内容
$content = file_get_contents('data.txt');
echo $content;
// 写入文件内容
$data = 'Hello, PHP!';
file_put_contents('output.txt', $data);
// 检查文件是否存在
if (file_exists('myfile