使用tp5.1 写一个导出数据为txt文件并自动下载文件 案例代码
时间: 2024-09-11 18:04:32 浏览: 80
在ThinkPHP 5.1中,你可以使用内置的file_put_contents函数来创建文本文件,并结合HTML表单的a标签来实现文件的下载。下面是一个简单的示例代码:
```php
<?php
// 假设你有一个需要导出的数据数组$data
$data = [
'column1' => 'value1',
'column2' => 'value2',
// ... 其他数据
];
// 定义文件名和路径
$fileName = 'export_data.txt';
$filePath = './public/download/' . $fileName; // 确保有write权限
// 将数据写入到txt文件
if (file_put_contents($filePath, implode("\n", array_keys($data)) . "\n" . implode("\n", array_values($data)), LOCK_EX) !== false) {
// 成功创建文件,准备发送响应
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename={$fileName}");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
readfile($filePath);
exit; // 结束当前请求,防止输出其他内容
} else {
echo "数据写入文件失败";
}
?>
```
在这个例子中,我们首先将数据键值对转换为字符串,并以换行符分隔,然后将结果写入指定的文件。接着,我们设置HTTP头信息,告诉浏览器这是一个可以下载的文件,最后使用readfile函数读取文件内容并直接返回给客户端。
阅读全文