PHP 导出cvs文件
iconv用法:https://www.php.net/manual/zh/function.iconv.php
iconv
(PHP 4 >= 4.0.5, PHP 5, PHP 7)
iconv — 字符串按要求的字符编码来转换
说明
iconv ( string $in_charset
, string $out_charset
, string $str
) : string
将字符串 str
从 in_charset
转换编码到 out_charset
。
参数
in_charset
输入的字符集。
out_charset
输出的字符集。
如果你在 out_charset
后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。 如果你添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。 否则,会导致一个 E_NOTICE
并返回 FALSE
。
Caution
//TRANSLIT 运行细节高度依赖于系统的 iconv() 实现(参见 ICONV_IMPL
)。 据悉,某些系统上的实现会直接忽略 //TRANSLIT,所以转换也有可能失败,out_charset
会是不合格的。
str
要转换的字符串。
注:运用//TRANSLIT 的话,空格是不能识别的,转换会报错。
-----------------------------------------------------------------------------------------------------------------------------------------------
public function downloadPushRecord() {$oData = \App\Models\MedlivePushRecord::orderBy('id', 'DESA')->get();$aData = [];foreach ($oData as $k => $v) {if ($v->medical_editor) {$medical_editor = implode(json_decode($v->medical_editor, true), '、');} else {$medical_editor = '';}$aData[] = [$v->id, $v->project_code, $v->project_name, $v->sales_person, $v->project_manager,$v->push_time, $v->push_platform, $v->push_department, $v->push_position, data_get(\App\Models\MedlivePushRecord::STATUS_MAP, $v->status, ''),$v->advertorial_title, $v->url, $v->standard_price, $v->sales_price,$v->drug_company, $medical_editor, $v->editor_email, $v->push_category, $v->remark,];}//注意CSV文件的头两个字不能是大写字母$aHeaderInfo = array('id', '项目名称', '项目单号', '销售', '项目经理', '推送时间','推送平台', '推送科室', '发布位置', '审核状态', '软文标题', '推文URL', '刊例标准价格','销售价钱', '药企名称', '编辑人员', '编辑邮箱', '推送类别', '备注');$this->putCsv($aHeaderInfo, $aData, "词库"); }
/*** 导出excel(csv)* @data 导出数据* @headlist 第一行列名(注意前两个列名不能是大写!否则输出的扩展名不是cvs)* @fileName 输出Excel文件名*/ public static function putCsv($header_data = [],$data= [],$file_name='test') {//(默认30秒)set_time_limit(0)不对PHP执行时间做限制。set_time_limit(0);header('Content-Type: application/vnd.ms-excel'); //注意 如果对文件名做了处理,文件名就不能带有特殊符号“——”等其他 // header("Content-Disposition:filename=" . iconv("UTF-8", "GB18030", "$file_name") . ".csv");header('Content-Disposition: attachment;filename='.$file_name.'.csv');header('Cache-Control: max-age=0');$fp = fopen('php://output', 'w');if (!empty($header_data)) {foreach ($header_data as $key => $value) {$header_data[$key] = iconv('utf-8', 'gbk', $value);}fputcsv($fp, $header_data);}$num = 0;//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小$limit = 100000;//逐行取出数据,不浪费内存$count = count($data);if ($count > 0) {for ($i = 0; $i < $count; $i++) {$num++;//刷新一下输出buffer,防止由于数据过多造成问题if ($limit == $num) {ob_flush();flush();$num = 0;}$row = $data[$i];foreach ($row as $key => $value) {try {$row[$key] = iconv("utf-8",'GBK//TRANSLIT',trim($value));} catch (\Exception $e) {info('导出出错数据:'.$row[$key]);}}try {fputcsv($fp, $row);} catch (\Exception $e) {print $e->getMessage();exit();}}}fclose($fp); }
---------------------
作者:不二周助Rex
来源:CSDN
原文:https://blog.csdn.net/weixin_42188216/article/details/83899445
版权声明:本文为博主原创文章,转载请附上博文链接!
PHP 导出cvs文件相关推荐
- php 导出cvs,php导出cvs文件简单类
php导出cvs文件简单类/** * @author http://centphp.com/ * excel Tool */ class CvsExport { public static $read ...
- php导出cvs文件英文自动分割,导出csv_php导出csv文件函数
摘要 腾兴网为您分享:php导出csv文件函数,桌面日历,优美图,小学英语,仙乐等软件知识,以及sfc游戏合集,计划生育网上办理平台,outlookapp,虾米返利网,书链,聚米网,幼儿园带量食谱软件 ...
- vue 本地xlsx文件下载_前端vue下载导出excel和cvs文件
// 导出 exportData () { this.$confirm('确认导出XXXXXX?', { confirmButtonText: '导出', cancelButtonText: '取消' ...
- 导出cvs文件格式数据
在运营后台开发场景中,经常会有导出数据的开发场景,而导出文件时一般都是使用cvs格式文件.虽然在大部分情况,我们都是使用公司封装好的方法直接进行调用,但是我们还是得知道如何进行文件的导出,如果进行文件 ...
- mysql SQLyog导入导出csv文件
1.选择数据库表 --> 右击属性 --> 备份/导出 --> 导出表数据作为 --> 选择cvs --> 选择下面的"更改" --> 字段 - ...
- java解析csv文件写入mysql_java读取cvs文件并导入数据库
本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下 首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains("匹配字段" ...
- php页面导出csv,使用PHP生成并导出CSV文件
CSV文件是以纯文本形式存储的,一般以逗号为分隔符. 这里主要简单介绍下如何导出CSV文件. 一.浏览器导出CSV文件格式 /** * 导出CSV文件 */ function exportCsv() ...
- 黑盒测试之导入CVS文件之什么是CVS文件
参考网址: http://baike.baidu.com/view/20982.htm CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的.CVS版 ...
- matlab读取cvs文件的几种方法
matlab读取CVS文件的几种方法: 1,实用csvread()函数 csvread()函数有三种使用方法: 1.M = csvread('filename') 2.M = csvread('fil ...
最新文章
- 这 3 个字是未来发展关键,不重视的企业,正在被淘汰
- IDEA 不能显示项目里的文件结构
- 前端学PHP之文件操作
- window下建立vue.js项目
- SpringBoot 2.x 整合Mybatis二:PageHelper分页
- 企业如何从 0 到 1 构建整套全链路追踪体系
- 黑盒测试 ------ 等价类划分法
- 服务器监控工具_8款服务器和应用性能监控工具
- web前端基础(08html5新标签)
- Jmeter-【JSON Extractor】-响应结果中数组多个相同key取值
- C语言/ 运算符的优先级以及结合方向
- PAIP.ASP技术手册
- 计算机毕业设计ssm基于vue的健康餐饮管理系统的设计与实现
- 用C#实现一个zip解压功能,无需引入dll(可直接放到Unity中使用)
- 苹果手机内屏幕出现彩色条纹怎么办
- 依据数据简单分析,发掘潜在客户
- linux 备份信息查看器,linux 全新的备份神器 Duplicity
- 历史经验之解决vMix22闪退的办法(亲测管用)
- EV,PV,AC,SPI,CPI中曲线对比图
- 盘古开源:加速建设算力网络,全面开启算力时代