使用PHP创建多个CSV文件

时间:2015-11-18 09:01:10

标签: php codeigniter csv zip

我跟随this answer使用PHP创建csv文件。但是如何创建多个csv文件?大家都说那些csv文件必须发送到zip文件中。但我不知道该怎么做。

我尝试将代码加倍以制作2个csv文件,然后在最后添加this,但是在我下载后,zip文件中没有任何内容。

1 个答案:

答案 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();