ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
### CSV 导出 jig 2018-1-27 **位置:** Common\Tools\CsvTools.class.php **参数:** * @param $title array 标题 * @param $data array 数据 二维数组 * @param $filename string 文件名 **调用:** ~~~ use Common\Tools\CsvTools; // 加载文件 public function export() { $title = array('姓名', '城市', '手机'); $data = array( array('李明', '北京', '13812345678'), array('王伟', '深圳', '15887654321') ); $filename = '同学通讯录'; $csv = new CsvTools(); // 实例化 $csv->csvExport($title, $data, $filename); // 导出操作 } ~~~ **完整代码:** ~~~ /** * 导出CSV 从function.php export_csv 迁移过来 * * jig 2018-1-27 * @param $title array 标题 * @param $data array 数据 * @param $filename string 文件名 * @return resource */ function csvExport ($title, $data, $filename) { if (empty($title) && empty($data) && empty($filename)) { return false; } $result = ''; // 组装数据 $n = count($title); $i = 0; // 把标题的数组拆分成字符串 foreach ($title as $k => $v) { $i++; if ($i != $n) { $result .= '"'. $v . '",'; } else { $result .= '"'. $v . "\"\r\n"; } } unset($i); // 把数据数组拆分成字符串链接起来 foreach ($data as $k => $val) { foreach ($val as $ko => $vo) { $i++; $row = str_replace("\"", "\"\"", $vo); // 替换格式 if ($i != $n) { $result .= "\"\t" . $row . '",'; } else { $result .= "\"\t" . $row . "\"\r\n"; } } unset($i); } // 解决IE浏览器输出中文名乱码的 bug if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { $file_name = urlencode($file_name); $file_name = str_replace('+', '%20', $file_name); } // $result 字符串导出 CSV header('Content-Type: application/download'); header("Content-type:text/csv;"); header("Content-Disposition:attachment;filename=" . $filename . date('Ymd') . '.csv'); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0'); header('Pragma:public'); $result = iconv('utf-8', 'gb2312', $result); // 解决中文乱码 echo $result; exit(); } ~~~