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

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);

}

PHP导出CSV文件出现乱码的解决方法

在做项目时碰到使用外语的情况下,我们就会使用UTF-8编码.但是,在用PHP导出CSV文件时,如果写入的数据是使用UTF-8编码的日语.韩语之类的外文,就会出现乱码. 要解决PHP生成CSV文件的乱码 ...

MySQL直接导出CSV文件,并解决中文乱码的问题

需求: 需要导出hr_users 表中的部分字段的数据,以前是用PHP写脚本,然后导出CSV文件. 在MySQL中,它自己就能导出CSV文件 ,只不过是有如下几个问题需要大家解决. 1. 生成文件不成 ...

javascript导出csv文件(excel)

这里贴出JavaScript导出csv文件(excel)的代码. /** * 导出excel * @param {Object} title 标题列key-val * @param {Object} ...

Win10使用mysqldump导出csv文件及期间遇到的问题

作为测试,我们这里使用了名为testdb的数据库中的名为test_table的表,首先我们使用如下SQL来查看其中有何数据: select * from testdb.test_table 数据如下: ...

PHP之导出CSV文件

序言 Q1:什么是csv文件? A1:csv即 comma-separated values ,逗号分隔值.是一种通用的相对简单地文件格式,目前被较为广泛的使用.其最广泛的应用就是用来转移表数据. “ ...

导出csv文件示例

导出csv文件示例 csv文件默认以英文逗号,做为列分隔符换行符\n作为行分隔符,写入到一个.csv文件即可.含有英文逗号,和换行符会发生数据输出会出现混乱,下面列出一些处理方法.特殊字符处理1.含有 ...

mysql SQLyog导入导出csv文件

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

PHP 读取/导出 CSV文件

工作中经常会有遇到导入/导出的需求,下面是常用的方法.读取CSV文件,可以分页读取,设置读取行数,起始行数即可.导出CSV文件,用两种方法进行实现. /** * 读取CSV文件 * @param st ...

Web 端 js 导出csv文件(使用a标签)

前言 导出文件,使用最多的方式还是服务器端来处理.比如jsp 中使用response 的方式. 但是,有时候可能就想使用web 前端是否也可以把页面上的内容导出来呢? 比如说,导出页面的一个表格. 这 ...

随机推荐

[JSP]JSP 简介

1.1 概述 1.1.1 什么是 JSP? JSP 全称是 Java Server Pages,是一种动态网页开发技术. 它与 PHP.ASP.ASP.NET 等语言类似,运行在服务端的语言. JSP ...

地址(Address)——统一资源表示(URI)——WCF学习笔记(2)

统一资源标识(URI) URI:Uniform Resource Identifier(统一资源标识),唯一地标识一个网络资源的同时也表示资源所处的位置的方式(资源访问所用的网络协议). URI结构: ...

BUG描述规范

BUG描述规范 一. 目的与适用范围 1.1 目的 报告软件测试错误的目的是为了保证修复错误的人员可以明确报告的错误,从而有利于分析错误产生的原因,定位错误,然后修正之.因此,报告软件测试错误的基本要 ...

MyBatis之二:简单增删改查

这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 ...

linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖

链接地址:http://blog.chinaunix.net/uid-23683795-id-2391087.html # vi ~/.bashrc   如果你看到如下内容,以下命令都会用别名执行了, ...

css3的apprearance属性(转)

appearance使用方法: .elmClass{ -webkit-appearance: value; -moz-appearance: value; appearance: value; } 接 ...

jQuery form插件使用详解

点击打开: jquery选择器全解 jquery中的style样式操作 jquery中的DOM操作 jquery中的事件操作全解 jquery中的动画操作全解 jquery中ajax的应用 自定义jq ...

【bzoj4568 scoi2016】幸运数字

题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征. 一些旅行者希望 ...

jsp中forward与redirect

一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下: request.getRequestDispatcher("new.jsp").forward(reques ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值