封装导出csv文件类
来源:互联网 发布:java商城系统源码下载 编辑:程序博客网 时间:2024/06/10 00:45
摘要:使用场景,从数据表中取出utf-8的二维数组数据,需要通过php输出流的形式下载到客户端,故封装此类。
class ExportCsv { static function export($file_name = '',$table = array(),$header = array()){ $file_name = $file_name ? $file_name : 'default.csv'; if(!is_array($table) || (count($table) == 0)){ echo '无效数据'; exit(); } $now = gmdate("D, d M Y H:i:s"); header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); header("Last-Modified: {$now} GMT"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment;filename={$file_name}"); header("Content-Transfer-Encoding: binary"); ob_start(); $df = fopen("php://output", 'w'); if(is_array($header) && (count($header) != 0)){ $header = self::encodeSwitch($header); fputcsv($df, $header); } $table = self::encodeSwitch($table); foreach($table as $line){ fputcsv($df, $line); } fclose($df); ob_end_flush(); } static function encodeSwitch($a = array()){ $re = array(); if(!is_array($a)){ return false; } foreach($a as $k => $v){ if(is_array($v)){ $re[] = self::encodeSwitch($v); }else{ $re[] = mb_convert_encoding($v, 'gbk', 'utf-8'); } } return $re; }}
<完>
0 0
- 封装导出csv文件类
- 导出CSV文件工具类
- 导出为CSV文件的类
- csv文件导出
- php导出csv文件
- PHP导出CSV文件
- mysql导出csv文件
- java导出CSV文件
- php导出CSV文件
- C# 导出CSV文件
- mysql 导出csv文件
- csv文件导入导出
- 导出CSV文件
- C# 导出csv文件
- csv文件导入导出
- java导出CSV文件
- 导出csv文件
- C#导出csv文件
- (十二)分割窗口
- (十三)QListWidget、QListWidgetItem、堆栈窗体QStackedWidget
- awk RS ORS
- compose.js(未完成)
- go语言快速入门:BootStrap应用(16)
- 封装导出csv文件类
- bzoj 3668: [Noi2014]起床困难综合症 (贪心)
- Android:Handler事件处理机制
- 高性能Web架构
- AOP 的利器:ASM 3.0 介绍
- Android UI开发中的常用控件Button
- 二分图的最大匹配、完美匹配和匈牙利DFS算法
- 国家主权数字货币研究
- 采药-洛谷 1048