首页 > 开发 > PHP > 正文

PHP下载生成的csv文件及问题总结

2024-05-04 23:38:36
字体:
来源:转载
供稿:网友
CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片的许多属性。下面小编给大家介绍下PHP下载生成的csv文件及问题总结
 

最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器。虽然说csv是一种比较简单的excel表格形式,生成只要按指定格式然后生成.csv文件就可以,但是在使用中也会遇到很多问题,下面给大家分享下PHP下载csv文件及问题总结

首先大家先看个例子,生成csv文件并下载
 

  1. //要生成csv文件的数组 
  2. $csvArr=array(); 
  3. $csvArr[]=array('用户编号1','上班日期1','签到时间1','签退时间1'); 
  4. $csvArr[]=array('用户编号2','上班日期2','签到时间2','签退时间2'
  5. download_send_headers("data_export_" . date("Y-m-d") . ".csv"); 
  6. $head=array('用户编号','上班日期','签到时间','签退时间'); 
  7. echo array2csv($csvArr,$head); 
  8. unset($csvArr); 
  9. die(); 
  10. function array2csv(array &$array,$head) 
  11.   if (count($array) == 0) { 
  12.    return null
  13.   } 
  14.   ob_start(); 
  15.   $df = fopen("php://output"'w'); 
  16.   if(!$head){ 
  17.     $head=array_keys(reset($array)); 
  18.   } 
  19.   fputcsv($df,$head); 
  20.   foreach ($array as $row) { 
  21.    fputcsv($df, $row); 
  22.   } 
  23.   fclose($df); 
  24.   return ob_get_clean(); 
  25. function download_send_headers($filename) { 
  26.   // disable caching 
  27.   $now = gmdate("D, d M Y H:i:s"); 
  28.   header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); 
  29.   header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); 
  30.   header("Last-Modified: {$now} GMT"); 
  31.   // force download  
  32.   header("Content-Type: application/force-download"); 
  33.   header("Content-Type: application/octet-stream"); 
  34.   header("Content-Type: application/download"); 
  35.   // disposition / encoding on response body 
  36.   header("Content-Disposition: attachment;filename={$filename}"); 
  37.   header("Content-Transfer-Encoding: binary"); 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表