当前位置:首页 > 日记 > 正文

PHP下载生成的CSV文件和问题摘要

PHP下载生成的CSV文件和问题摘要
最近的一个项目需要显示订单的信息,并能将相关信息放在CSV文件中并下载到浏览器上,虽然CSV是一种相对简单的Excel表单,它只能以指定的格式生成CSV文件,但使用时也会遇到许多问题。现在让我与大家分享PHP下载CSV文件和问题摘要。

首先,让我们看一个示例,生成CSV文件并下载它。
用于生成CSV文件的数组
csvarr美元=阵();
csvarr美元{ } =阵列(1用户ID、日期1,1标志的时间,返回时间1');
csvarr美元{ } =阵列(2的用户ID,日期2,2标志的时间,返回时间2')
download_send_headers(data_export_ 。日期(当前)。;
$头=(用户ID,数组的开始日期标志的时间','回报');
回声array2csv(csvarr美元,美元的头);
unset($ csvarr);
(死亡);
功能array2csv(数组,$头)
{
如果(计数(数组)= 0){
返回null;
}
ob_start();
$ df = fopen(PHP: / /输出
如果(!美元头){
合头= array_keys(复位($array));
}
fputcsv($ DF,$头);
foreach(数组$行){
fputcsv($ DF,$行);
}
Fclose($ DF);
返回ob_get_clean();
}
功能download_send_headers($文件名){
禁用缓存
gmdate(现在美元=D、D M Y H:我:);
标题(到期:二,03月2001日6时00分00秒格林尼治);
标题(缓存控制:最大年龄= 0,没有缓存,必须重新验证,代理验证);
页眉(最后修改:{ $ });
强制下载
页眉(内容类型:应用程序/下载);
标题(内容类型:应用程序/字节流);
标题(内容类型:应用程序下载);
响应体/编码
标题(内容配置:附件;文件名=文件名});
标题(内容传输编码:二进制);
}
PHP数组生成CSV文件
< PHP
数据=数组(
阵列('row_1_col_1 ','row_1_col_2 ','row_1_col_3),
阵列('row_2_col_1 ','row_2_col_2 ','row_2_col_3),
阵列('row_3_col_1 ','row_3_col_2 ','row_3_col_3),
);
文件;
页眉(内容类型:文本);
标题()内容配置:附件;文件名;
标题(杂注:无缓存);
标题(过期:0 );
outputcsv($数据);
功能outputcsv($数据){
美元= fopen(PHP输出缓冲: / /输出
foreach($数据达Val){
foreach(瓦尔美元美元美元关键= val2){
瓦尔{ } =美元美元关键iconv('utf-8 ','gbk,$ val2);
/ / Excel支持GBK编码格式,我们必须转换,或乱码
}
fputcsv($美元输出缓冲,Val);
}
Fclose($输出缓冲);
}
>
解决php5.2.8 fgetcsv函数的bug

linux环境

由问题解析的数据不完整,并且有一个空字段。

在互联网上,它说的错误存在于php5.2.8

解决方案是使用自定义函数。
功能__fgetcsv($手柄,长度为零美元,美元D = '、',$ E =){
a preg_quote美元($);
e = preg_quote(e);
= $ _line ;
$ = false;
同时($ EOF)!= TRUE){
_line美元=(空(合长度)fgets($处理):fgets($美元处理,长度));
itemcnt美元= preg_match_all('。E.美元/美元美元,_line,假人);
如果($ itemcnt % 2 = = 0)
$ =真;
}
($ _csv_line = preg_replace /(:| { })$ ,美元D、装饰($ _line));
($ _csv_pattern =/{ ^。美元E * }((e)$ e。。$ e } *。E.美元| { ^。*D;
preg_match_all(_csv_pattern美元美元美元,_csv_line,_csv_matches);
_csv_data美元= $ _csv_matches { 1 };
为($ _csv_i = 0;美元_csv_i <计数($ _csv_data);$ _csv_i ++){
_csv_data美元{ $ _csv_i } = preg_replace( / ^。e。*)。E.美元/美元的,1美元,美元,美元_csv_i _csv_data { });
_csv_data美元{ $ _csv_i } = str_replace($ E $ E,E _csv_data美元美元美元,_csv_i { });
}
返回空(美元_line)假:_csv_data美元;
}
Excel无法正确读取长度超过32K CSV域问题

当用Excel打开PHP导出CSV文件时,产品表达式字段将显示在两行中。

看这场发现场大于32K,Excel将弦断成两行,如果小于32K,是正常的。

这是excel的局限性,尚未找到解决方案。

单元格最多为32767个字符。

解决乱码的问题,打开Excel在PHP的CSV文件生成的UTF-8编码

PHP生成UTF-8编码使用Excel打开中国混沌编码的CSV文件,因为在输出CSV文件没有BOM。

< PHP
gmdate(现在美元=D、D M Y H:我:);
标题(到期:二,03月2001日6时00分00秒格林尼治);
标题(缓存控制:最大年龄= 0,没有缓存,必须重新验证,代理验证);
页眉(最后修改:{ $ });
强制下载
页眉(内容类型:应用程序/下载);
标题(内容类型:应用程序/字节流);
标题(内容类型:应用程序下载);
响应体/编码
标题(内容配置:附件;文件名=文件名});
标题(内容传输编码:二进制);
items_data美元=阵列(
0= >阵列(标题= >测试测试Test1),
1= >阵列(标题= >测试测试test2),
2= >阵列(标题= >对照试验试验)

打印(CHR(0xef)。Chr(0xbb)。Chr(0xbf));
/ /集UTF-8 + BOM处理、汉字显示乱码
回声array2csv($ items_data);
功能array2csv(数组)
{
如果(计数(数组)= 0){
返回null;
}
ob_start();
$ df = fopen(PHP: / /输出
fputcsv($ DF,array_keys(复位($array)));
foreach(数组$行){
fputcsv($ DF,$行);
}
Fclose($ DF);
返回ob_get_clean();
}
>
自动变科学计数法求解CSV文件数的方法

当程序在字段中有较长的字段时,当您看到带有excel软装甲的CSV文件时,程序导出的CSV文件将成为一种科学和技术法规的形式。

事实上,这个问题与用什么语言导出CSV文件无关,当excel显示数字时,如果数字大于12位,就会自动转换成科学的计数方法。如果数字大于15位,它不仅用于科学和技术费用,而且只保留15位,其余将改为0。

解决这一问题

只需在不可见字符后面添加数字字段,字符串的结尾加上制表符。

PHP程序可以判断它必须是

复制代码代码如下所示:

is_numeric(美元值)值美元T:美元价值;
以上代码内容是实现php下载和生成CSV文件的问题汇总,希望大家喜欢。

相关文章

常用账户密码常用问题QQ常见问题

常用账户密码常用问题QQ常见问题

账户,常见问题,密码,常用,电脑软件,1,帐号基本信息;媒体;使用密码;我应该怎样填写这个盒子 答:填写您的QQ号码之前使用的旧密码。如果您仍然可以使用密码,例如您要修改密码保护来上诉,我们建议您尽早填写密码。 2,忘记以前使用的密码,如何填写投诉…

PS图象处理软件使用的通道迅速挑选

PS图象处理软件使用的通道迅速挑选

软件使用,图象处理,通道,火焰,效果,本教程使用的PS图象处理软件渠道快速拔出火焰的燃烧效果图方法,消光效果非常好,非常适合初学者学习,推荐朋友的爱,让我们一起学习 本教程主要是介绍一个朋友使用PS图象处理软件利用渠道迅速火燃烧效果图的方…

如何添加一个简短的介绍Excel2003

如何添加一个简短的介绍Excel2003

解释,教程,细胞,简短,电脑软件,鼠标成细胞将显示在文本的初步介绍填充,有利于快速识别我们的单元格数据,此外,办公室恋人发现这个小系列将介绍Excel2003为重要的细胞轮廓的全过程,加上我希望你能把参考类比居多,加入细胞Excel2003介绍文本的方法…

年轻女孩的场景使用PS图象处理软件

年轻女孩的场景使用PS图象处理软件

教程,图象,处理软件,年轻女孩,场景,本教程主要使用PS图象处理软件合成迷人的女孩簇拥的鲜花和藤蔓。本教程非常详细,可以返回到某个步骤,随时添加详细信息。 本教程主要使用PS图象处理软件合成迷人的女孩簇拥的鲜花和藤蔓。本教程非常详细,可…

Javascript检查浏览器是否启用了XX函数。

Javascript检查浏览器是否启用了XX函数。

检查,浏览器,启用,函数,电脑软件,检查浏览器是否支持cookie功能。 如果(导航仪。cookieenabled) { document.write(你的浏览器支持cookie功能!; } 别的{ document.write(您的浏览器不支持Cookie!; } 检查浏览器是否已启用java支持功能 document.wri…

用ps制作QQ动态表情,提高QQ聊天的兴

用ps制作QQ动态表情,提高QQ聊天的兴

聊天,动态,表情,兴趣,电脑软件,很多网民更喜欢以自己的形象或朋友的形象来做所谓的恶搞,以增加QQ聊天的兴趣。这是一个用PS涂VIN unionmaw制作qq动态表情图片和文字的教程,有兴趣的朋友可以看看。 QQ默认表达式已经不能满足广大用户的性能要…

Word2003Word2003教程其他风格技术

Word2003Word2003教程其他风格技术

教程,风格,快速,技术,电脑软件,1,选择要更改的单词、段落、列表或表。 2、如果样式和格式任务窗格(;任务窗格:一个窗口,提供了常用的命令在Office程序的位置是合适的,尺寸小,可以使用这些命令,同时继续处理文件。)没有打开,单击格式工具栏(工具栏;;:包括…

教你如何用PS制作一张黑白照片

教你如何用PS制作一张黑白照片

照片,教你,如何用,黑白,电脑软件,本教程是为你介绍朋友创建的黑白照片,由ps,教程基础比较,很适合初学者学习,推荐,喜欢的朋友可以跟着教程一起学习。 你想错过过去吗很简单,这里是介绍你用黑白照片创建一个黑白照片,一起学习! 方法/步骤 1。打开ps…

红网和品牌到底如何演奏爱湿纸巾液

红网和品牌到底如何演奏爱湿纸巾液

灵感,创意,液体,红网,品牌,红网和品牌到底如何在互联网上玩,等待合适的时间就是一切,下面的小创意激发灵感,介绍液体细语的卫生巾,看看能不能激发你的灵感。 在互联网的世界里,成功有时是一个小机会,很好地说,有必要在正确的道路上努力,而不是在正…

Word2003排版技术Word2003教程

Word2003排版技术Word2003教程

教程,技术,电脑软件,下面是你与大家分享的2003字排版技术。我希望你能帮助你。 1。中西方语言的字体、字体和数量 打开文档D:字练习练1.doc和设置文档的内容如下: (1)第一部分:黑体、第四、粗、双线下划线、红色、150%个字符之间的放大;间距为3磅…

设计师的20条黄金法则

设计师的20条黄金法则

黄金法则,设计师,电脑软件,本教程是介绍一个朋友的20个基本规则的黄金为朋友。本教程很实用,适合初学者学习。推荐朋友一起学习。 以下内容来自于美国视觉设计学校的完形设计。新手可以看到这些规则,并将其应用到您的设计过程中,以防止您以某…

PS打造一个破碎动漫角色效果GIF动

PS打造一个破碎动漫角色效果GIF动

动态图,动漫,角色,效果,电脑软件,本教程是介绍给一个朋友,利用ps创建的动画角色动画效果GIF动态图法。教程产生的效果非常好。这个教程不是很难。建议喜欢的朋友可以随本教程学习。 本教程是介绍给朋友的,用ps制作的破坏动画效果的GIF动态图…