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

将字符串 strin_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文件相关推荐

  1. php 导出cvs,php导出cvs文件简单类

    php导出cvs文件简单类/** * @author http://centphp.com/ * excel Tool */ class CvsExport { public static $read ...

  2. php导出cvs文件英文自动分割,导出csv_php导出csv文件函数

    摘要 腾兴网为您分享:php导出csv文件函数,桌面日历,优美图,小学英语,仙乐等软件知识,以及sfc游戏合集,计划生育网上办理平台,outlookapp,虾米返利网,书链,聚米网,幼儿园带量食谱软件 ...

  3. vue 本地xlsx文件下载_前端vue下载导出excel和cvs文件

    // 导出 exportData () { this.$confirm('确认导出XXXXXX?', { confirmButtonText: '导出', cancelButtonText: '取消' ...

  4. 导出cvs文件格式数据

    在运营后台开发场景中,经常会有导出数据的开发场景,而导出文件时一般都是使用cvs格式文件.虽然在大部分情况,我们都是使用公司封装好的方法直接进行调用,但是我们还是得知道如何进行文件的导出,如果进行文件 ...

  5. mysql SQLyog导入导出csv文件

    1.选择数据库表 --> 右击属性 --> 备份/导出 --> 导出表数据作为 --> 选择cvs --> 选择下面的"更改" --> 字段 - ...

  6. java解析csv文件写入mysql_java读取cvs文件并导入数据库

    本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下 首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains("匹配字段" ...

  7. php页面导出csv,使用PHP生成并导出CSV文件

    CSV文件是以纯文本形式存储的,一般以逗号为分隔符. 这里主要简单介绍下如何导出CSV文件. 一.浏览器导出CSV文件格式 /** * 导出CSV文件 */ function exportCsv() ...

  8. 黑盒测试之导入CVS文件之什么是CVS文件

    参考网址: http://baike.baidu.com/view/20982.htm CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的.CVS版 ...

  9. matlab读取cvs文件的几种方法

    matlab读取CVS文件的几种方法: 1,实用csvread()函数 csvread()函数有三种使用方法: 1.M = csvread('filename') 2.M = csvread('fil ...

最新文章

  1. 这 3 个字是未来发展关键,不重视的企业,正在被淘汰
  2. IDEA 不能显示项目里的文件结构
  3. 前端学PHP之文件操作
  4. window下建立vue.js项目
  5. SpringBoot 2.x 整合Mybatis二:PageHelper分页
  6. 企业如何从 0 到 1 构建整套全链路追踪体系
  7. 黑盒测试 ------ 等价类划分法
  8. 服务器监控工具_8款服务器和应用性能监控工具
  9. web前端基础(08html5新标签)
  10. Jmeter-【JSON Extractor】-响应结果中数组多个相同key取值
  11. C语言/ 运算符的优先级以及结合方向
  12. PAIP.ASP技术手册
  13. 计算机毕业设计ssm基于vue的健康餐饮管理系统的设计与实现
  14. 用C#实现一个zip解压功能,无需引入dll(可直接放到Unity中使用)
  15. 苹果手机内屏幕出现彩色条纹怎么办
  16. 依据数据简单分析,发掘潜在客户
  17. linux 备份信息查看器,linux 全新的备份神器 Duplicity
  18. 历史经验之解决vMix22闪退的办法(亲测管用)
  19. EV,PV,AC,SPI,CPI中曲线对比图
  20. 盘古开源:加速建设算力网络,全面开启算力时代

热门文章

  1. imtoken官网通告SHIB拥有自己的Shibarium区块链,
  2. MySQL批量修改数据
  3. java se7 新特性_Java SE7新特性之try-with-resources语句
  4. 区块链应用系列 - DID
  5. C#时间格式 AM\ PM
  6. html页面布局A4模板,A4页面就像html中的布局
  7. 边坡安全监测系统 浅谈方案分享
  8. Android 手机控制台灯开关详细教程-智能台灯
  9. html中怎样变单独英文月份,(整理)如何单独表示英文月份
  10. 2个Android蓝牙无法连接的原因和解决方法