php生成csv文件并提供下载及相关注意事项
1、生成文件过程略,只要逗号分割就可以了
2、提供下载加上如下代码:
header("Content-type: application/octet-stream");
 header('Content-Disposition: attachment; filename="' . basename($file) . '"');
 header("Content-Length: ". filesize($file));
 readfile($file);
3、如果数据是utf8的话,excel打开csv文件会乱码,解决方法:
1)、iconv/mb_convert_encoding 把utf8转换为gbk,此方法比较笨,不太好。
2)、加上bom 头,方法如下:
$head=pack('H*','EFBBBF');
$h=fopen($file,'w+');
fwrite($h,$content);
note:有同事说file_put_contents不能正确添加bom头,自己未验证过。
php生成csv文件并提供下载及相关注意事项的更多相关文章
- 24.-Django生成csv文件及下载
		
一.csv文件定义 逗号分隔值(comma-separated values, csv,有时页称字符分隔值,因为分分隔字符页可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本) 说明:可被常见 ...
 - PHP通过sql生成CSV文件并下载,PHP实现文件下载
		
/** * PHP通过sql生成CSV文件并下载 * @param string $sql 查询sql,结果为二维数组 * @param array $title 数据,CSV文件标题 * @para ...
 - PHP 生成.csv 文件并下载到浏览器
		
近期做了一个项目须要把订单的信息显示出来.而且可以把相关信息放到一个.csv 文件里,下载到浏览器.首先我要说明的是.csv 文件,PHP 有专门的函数去解析该类型的文件,相关函数大家可以去官网查看. ...
 - Java生成CSV文件实例详解
		
本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...
 - Java生成CSV文件
		
1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; im ...
 - POI以SAX方式解析Excel2007大文件(包含空单元格的处理)  Java生成CSV文件实例详解
		
http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...
 - Django生成CSV文件
		
1.生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 2.生成小的CSV文件 这里将用一个生成小的CSV文 ...
 - java导出生成csv文件
		
首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...
 - 图像处理项目——生成csv文件提高读取效率
		
利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...
 
随机推荐
- HtmlUnit 开发网络爬虫
			
网络爬虫第一个要面临的问题,就是如何抓取网页,抓取其实很容易,没你想的那么复杂,一个开源HtmlUnit包,几行代码就OK啦! 通常在一个页面中会包含别的Url,在别的Url当中又会包含更多的Url. ...
 - Python对日期进行格式化
			
Python对日期进行格式化 把当前时间输出为2017-04-07 19:00:00.进入python交互命令行输入: > import datetime > currtime = dat ...
 - C 标准库 - string.h之strpbrk使用
			
strpbrk Locate characters in string,Returns a pointer to the first occurrence in str1 of any of the ...
 - HDU 5695 ——Gym Class——————【贪心思想,拓扑排序】
			
Gym Class Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
 - disruptor--Introduction
			
The best way to understand what the Disruptor is, is to compare it to something well understood and ...
 - C#实现Javascript的Splice方法
			
最近开始学习Javascript语言,看到splice方法,以下引用其说明:该方法是一个通用删除和插入元素的方法,它可以在数组指定的位置开始删除或插入元素.其包括3个参数:第一个参数指定插入的起始位置 ...
 - C++运行符重载、友元函数
			
Complex.h #pragma once #include <iostream> using namespace std; //表示一个复数 class Complex { priva ...
 - springMVC基于注解的控制器
			
springMVC基于注解的控制器 springMVC基于注解的控制器的优点有两个: 1.控制器可以处理多个动作,这就允许将相关操作写在一个类中. 2.控制器的请求映射不需要存储在配置文件中.使用re ...
 - linux chkconfig 使用说明
			
原文 chkconfig是管理系统服务(service)的命令行工具.所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序. chkconfig可以更新(启动或停止)和查询系统 ...
 - sass(@at-root与&配合使用、without和with)
			
@at-root与&配合使用(找父级) scss.style css.style 应用于@keyframe scss.style css.style @at-root (without: .. ...