很多情况下我们需要将数据库中查询出来的数据导成 csv 保存.以下是 php 数组保存 csv 的方法,供参考
<?php
/**
* Created by PhpStorm.
* User: nwei
* Date: 2018/9/10
* Time: 12:06
*
* .--, .--,
* ( ( \.---./ ) )
* '.__/o o\__.'
* {= ^ =}
* > - <
* / \
* // \\
* //| . |\\
* "'\ /'"_.-~^`'-.
* \ _ /--' `
* ___)( )(___
* (((__) (__))) 高山仰止,景行行止.虽不能至,心向往之.
*
*/
$data = [
[
"赵钱孙",
"20",
"本科"
],
[
"周五正",
"25",
"研究生"
]
];
$title = [
"姓名",
"年龄",
"学历"
];
array_unshift($data,$title);
export_csv($data);
function export_csv($data) {
$path = $_SERVER['DOCUMENT_ROOT']."/csv/".date("Y-m-d",time())."/";
if (!is_dir($path)){ //判断目录是否存在 不存在就创建
mkdir($path,0777,true);
}
$filename = $path.time().'.csv'; //设置文件名
header( "Content-Type: text/csv;charset=utf-8" );
header( "Content-Disposition: attachment;filename=\"$filename\"" );
header("Pragma: no-cache");
header("Expires: 0");
$fp= fopen($filename, 'w');
// 对于用 wps 和编辑器打开无乱码但是用 excel 打开出现乱码的问题,可以添加以下一行代码解决问题
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));
foreach ($data as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
}

参考
http://www.111cn.net/phper/php-cy/86881.htm
https://www.jianshu.com/p/22ef589ff820
本文介绍了一种使用PHP将数组数据导出为CSV文件的方法,包括如何创建目录、设置文件名、添加UTF-8编码及使用fputcsv函数写入数据。此方法适用于将数据库查询结果批量导出。
220

被折叠的 条评论
为什么被折叠?



