很多情况下我们需要将数据库中查询出来的数据导成 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