使用PHP生成并导出CSV文件
程序员文章站
2023-01-25 16:28:02
CSV文件是以纯文本形式存储的,一般以逗号为分隔符。这里主要简单介绍下如何导出CSV文件。 一、浏览器导出CSV文件格式 /** * 导出CSV文件 */ function exportCsv() { // 需要导出的内容 $data = [ ['name' => '张三', 'score' => ......
csv文件是以纯文本形式存储的,一般以逗号为分隔符。
这里主要简单介绍下如何导出csv文件。
一、浏览器导出csv文件格式
/** * 导出csv文件 */ function exportcsv() { // 需要导出的内容 $data = [ ['name' => '张三', 'score' => '80'], ['name' => '李四', 'score' => '90'], ['name' => '王五', 'score' => '60'], ]; // 文件名,这里都要将utf-8编码转为gbk,要不可能出现乱码现象 $filename = $this->utftogbk('导出csv文件.csv'); // 拼接文件信息,这里注意两点 // 1、字段与字段之间用逗号分隔开 // 2、行与行之间需要换行符 $filedata = $this->utftogbk('姓名, 分数') . "\n"; foreach ($data as $value) { $temp = $value['name'] . ',' . $value['score']; $filedata .= $this->utftogbk($temp) . "\n"; } // 头信息设置 header("content-type:text/csv"); header("content-disposition:attachment;filename=" . $filename); header('cache-control:must-revalidate,post-check=0,pre-check=0'); header('expires:0'); header('pragma:public'); echo $filedata; exit; } /** * 字符转换(utf-8 => gbk) */ function utftogbk($data) { return iconv('utf-8', 'gbk', $data); }
二、在服务器生成csv文件
/** * 下载csv文件 */ public function downloadcsv() { // 需要导出的内容 $data = [ ['name' => '张三', 'score' => '80'], ['name' => '李四', 'score' => '90'], ['name' => '王五', 'score' => '60'], ]; // 文件名,这里都要将utf-8编码转为gbk,要不可能出现乱码现象 $filename = $this->utftogbk('生成csv文件.csv'); // 拼接文件信息,这里注意两点 // 1、字段与字段之间用逗号分隔开 // 2、行与行之间需要换行符 $filedata = $this->utftogbk('姓名, 分数') . "\n"; foreach ($data as $value) { $temp = $value['name'] . ',' . $value['score']; $filedata .= $this->utftogbk($temp) . "\n"; } $filepath = __dir__ . '/' . $filename; // 将一个字符串写入文件 file_put_contents($filepath, $filedata); return $filepath; } /** * 字符转换(utf-8 => gbk) */ public function utftogbk($data) { return iconv('utf-8', 'gbk', $data); }
上一篇: 《大话设计模式》之简单工厂模式
下一篇: 怎样使用Cookie跟踪来访者?