我跟随this answer使用PHP创建csv文件。但是如何创建多个csv文件?大家都说那些csv文件必须发送到zip文件中。但我不知道该怎么做。
我尝试将代码加倍以制作2个csv文件,然后在最后添加this,但是在我下载后,zip文件中没有任何内容。
答案 0 :(得分:1)
首先,您需要创建ZIP文件夹,创建每个CSV并将其保存到临时位置,然后将其添加到ZIP,删除临时CSV文件,最后下载ZIP。
由于我不知道您正在使用的代码是什么代码,您应该能够将这些代码添加到项目中
// create the ZIP file
$zip_name = 'csv.zip';
$zip = new ZipArchive;
$zip->open($zip_name, ZipArchive::CREATE);
$files = array('file_1.csv', 'file_2.csv', 'file_3.csv');
$temp_directory = 'path to directory';
// create each CSV file and add to the ZIP folder
foreach($files as $file) {
$handle = fopen($temp_directory . $file, 'w');
$data = array(); // data maybe from MySQL to add to your CSV file
// add your data to the CSV file
foreach($data as $d) {
fputcsv($handle, $d);
}
fclose($handle);
// add this file to the ZIP folder
$zip->addFile($temp_directory . $file);
// now delete this CSV file
if(is_file($temp_directory . $file)) {
unlink($temp_directory . $file);
}
}
$zip->close();