怎么弄个人网站,链友咨询,算命网站搭建,邢台生活网php导出csv是非常常用的操作#xff0c;网上也有灰常多的扩展。如果只是单纯的导出csv数据#xff0c;完全没有必要去用扩展。现在做项目#xff0c;都是代码能少就少#xff0c;扩展能不用就不用。好了#xff0c;不废话了#xff0c;开干#xff01;
直接搞一个方法网上也有灰常多的扩展。如果只是单纯的导出csv数据完全没有必要去用扩展。现在做项目都是代码能少就少扩展能不用就不用。好了不废话了开干
直接搞一个方法能够在各种地方调用
/*** 导出CSV* $data 导出的数据信息* $header 导出的表头信息* $field 导出的字段信息* $file 导出的文件名*/
public function csv($data, $header, $field, $file)
{// 临时文件目录$directory storage_path(app/temp);// 判断临时文件目录是否存在if (!File::isDirectory($directory)) {// 创建一个临时文件目录File::makeDirectory($directory, 0755, true);}// 临时文件名称$filename $file . date(YmdHis) . .csv;// 临时文件完整路径$path $directory . / . $filename;// 打开文件进行写入$fileCsv fopen($path, w);// 写入头部fputcsv($fileCsv, $header);// 循环所有的写入数据foreach ($data as $row) {// 获取所有的数据的key$keys array_keys($row);// 追加数据空数组$addRow [];// 循环追加的所有字段foreach ($field as $k) {// 判断追加的字段键是都存在if (in_array($k, $keys)) {// 追加到数据空数组$addRow[] $row[$k];} else {$this-error(字段 . $k . 不存在请联系开发人员);}}// 追加到文件fputcsv($fileCsv, $addRow);}// 关闭文件fclose($fileCsv);// 将临时文件发送为下载响应return response()-download($path, $filename)-deleteFileAfterSend();
}假设导出会员信息
// 通过模型查询到用户数据
$data \App\Models\Member::orderBy(id, desc)-get()-toArray();
// 设置导出的表头(也就是第一行)
$header [ID, UID, 用户昵称, 用户手机, 累计消费, 注册时间];
// 设置导出的字段
$field [id, uid, nike_name, phone, consume, created_at];
// 调用导出
return $this-csv($data, $header, $field, member_);每一行都有注释了自行扩充这是我自己一直用很简单的导出方式希望大家阔以用得到