php 生成csv文件自动保存本机或服务器 2023-02-2
2023-02-23 本文已影响0人
阿然学编程
- 使用场景 配合PHPMailer定时自动发送邮件,定时自动发送企业微信等使用
/**
* 生成csv并自动保存到服务器或本地
* @param array $data 查询的数据
* @param array $title 标题
* @param $file_path 保存的文件路径(如果没有请自行创建相关文件夹及目录)
* @return bool
*/
function sc_csv(array $data = array(), array $title = array(), $file_path)
{
ini_set('memory_limit', '-1'); // 设置最大内存限制为无限制
ini_set('max_execution_time', 0); // 设置最大执行时间为无限制
//打开CSV文件
//$file = @fopen($file_path, 'a');
$file = @fopen($file_path, 'w');
if ($file) {
foreach ($title as $v) {
$header[] = iconv('UTF-8', 'GB2312//IGNORE', $v);
}
fputcsv($file, $header);
$calc = 0;
$limit = 1000;
foreach ($data as $row) {
$calc++;
if ($limit == $calc) {
ob_flush();
flush();
$calc = 0;
}
foreach ($row as $t) {
$tarr[] = iconv('UTF-8', 'GB2312//IGNORE', $t);
}
fputcsv($file, $tarr);
unset($tarr);
}
unset($data);
//关闭文件
$res = fclose($file);
return $res;
}
return false;
}
- 调用
public function index()
{
//文件要保存在本地或者服务器的路径
$path = '../test.csv';
//添加表头
$header = array('Name', 'Age', 'Gender');
//添加数据行
$data = array(
array('John', '25', 'Male'),
array('Mary', '30', 'Female'),
array('Bob', '40', 'Male')
);
if ($sc_csv($data, $header, $path) === true) {
return '生成成功';
};
return '生成失败';
exit();
}