PHP下载生成的csv文件及问题总结
发布时间:2020-12-12 21:03:29 所属栏目:PHP教程 来源:网络整理
导读:最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器。虽然说csv是一种比较简单的excel表格形式,生成只要按指定格式然后生成.csv文件就可以,但是在使用中也会遇到很多问题,下面给大家分享下PHP下载csv文件及
最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器。虽然说csv是一种比较简单的excel表格形式,生成只要按指定格式然后生成.csv文件就可以,但是在使用中也会遇到很多问题,下面给大家分享下PHP下载csv文件及问题总结 首先大家先看个例子,生成csv文件并下载php array生成csv文件 $val2) {
$val[$key] = iconv('utf-8','gbk',$val2);
// CSV的Excel支持GBK编码,一定要转换,否则乱码
}
fputcsv($outputBuffer,$val);
}
fclose($outputBuffer);
}
?>
解决 fgetcsv函数在php5.2.8 中的bug环境linux 问题解析出来的数据不完整,有为空的字段 网上查了下说是在php5.2.8 中存在bug 解决办法是使用自定义函数 excel无法正确读取长度超过32K的CSV域问题 php 导出csv文件用excel打开后,产品表述字段分两行显示。 查看了下这个字段发现这个字段超过32K的字符,excel会把字符串打断成两行,如果小于32K,显示正常。 这是EXCEL的限制,目前还没有找到解决办法。 excel一个单元格最多是32767个字符。 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题PHP生成UTF-8编码的CSV文件用Excel打开中文显示乱码,是由于输出的CSV文件中没有BOM。array('title'=>'test test test1'),'1'=>array('title'=>'test test test2'),'2'=>array('title'=>'test test test3')
)
print(chr(0xEF).chr(0xBB).chr(0xBF));
//设置utf-8 + bom ,处理汉字显示的乱码
echo array2csv($items_data);
function array2csv(array &$array)
{
if (count($array) == 0) {
return null;
}
ob_start();
$df = fopen("php://output",'w');
fputcsv($df,array_keys(reset($array)));
foreach ($array as $row) {
fputcsv($df,$row);
}
fclose($df);
return ob_get_clean();
}
?>
导出csv文件数字会自动变科学计数法的解决方法用程序导出的csv文件,当字段中有比较长的数字字段存在时,在用excel软甲查看csv文件时就会变成科学技术法的表现形式。 其实这个问题跟用什么语言导出csv文件没有关系。Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0。 解决这个问题 只要把数字字段后面加上显示上看不见的字符即可,字符串结尾加上制表符"t". php 程序可以这样判断,注意一定是"t",不是't'. 代码如下: 以上代码内容就是本文实现PHP下载生成的csv文件及问题总结,希望大家喜欢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |