首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用php导出到cvs文件?

如何使用php导出到cvs文件?
EN

Stack Overflow用户
提问于 2015-11-02 22:20:07
回答 2查看 218关注 0票数 0

我在获取导出文件以创建和下载cvs文件时遇到问题。使用下面的代码,这将导出数据,但它会在浏览器中打印输出,而不是创建实际的csv文件。我使用<a href="export.php" target="_blank">Export Details</a>从另一个页面上的链接调用php,但它所做的只是在浏览器中显示数据,而不是创建csv文件。

这是我在文件export.php中的代码:

代码语言:javascript
运行
复制
<?php
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="sample.csv"');
$data = array(
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

$fp = fopen('php://output', 'w');
foreach ( $data as $line ) {
$val = explode(",", $line);
fputcsv($fp, $val);
}
fclose($fp);

?>

有人能看到哪里出了问题吗?

EN

回答 2

Stack Overflow用户

发布于 2015-11-03 01:38:00

所以,在玩了一个下午之后,我终于找到了问题的症结所在。问题不在于代码,而在于我在本地运行的数据库。我正在使用Mamp在本地设置我的wordpress数据库,这就是问题所在。解决方案是输出缓冲,可以在http://hibbard.eu/php-headerlocation-not-working-in-mamp/中找到解决方案。感谢大家的帮助;-)

票数 1
EN

Stack Overflow用户

发布于 2015-11-02 22:48:21

CSV文件是每行都有逗号分隔值的文件,可能用字符串括起来。

我注意到的第一件事就是将单个值传递给fputcsv()。但是fputcsv()需要一个值数组(字段)作为第二个参数。所以你的爆炸是多余的-看看手册页面,

因为您只输出到STDOUT (浏览器),所以您可以简单地回显您的代码行:

代码语言:javascript
运行
复制
<?php
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="sample.csv"'); 

$data = array(
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

foreach($data AS $line){
    echo $line.PHP_EOL;
}   
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33479760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档