【问题标题】:fputcsv - Function gives Error.fputcsv - 函数给出错误。
【发布时间】:2014-04-29 20:00:15
【问题描述】:

我正在尝试将我的数据导出到 csv 文件并让用户下载它。我正在使用 fputcsv() 函数,但在文件中,数据写入单个单元格而不是相邻单元格。我不知道是什么问题。请帮我。这是我的代码

session_start();
header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename=report_'.time().'.csv;');
$data = $_SESSION['data'];
$file = fopen('php://output','w');
foreach($data as $i=>$value)
{
    fputcsv($file, $value,";");
}
fclose($file);

这就是文件的样子..

【问题讨论】:

  • 试试这个 fputcsv($fp, array_values($list), ';', ' ');

标签: php fputcsv


【解决方案1】:

试试看

 $data = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"');
$fp = fopen('php://output', 'w+'); 
header('Content-type: application/octet-stream');  
header('Content-disposition: attachment; filename="data.csv"'); 
foreach($data as $line){
    $val = explode(",",$line);
    fputcsv($fp, $val);
}
fclose($fp);

或者根据你的数据试试

foreach($data as $i=>$value)
{
    fputcsv($file, $value);
}

【讨论】:

  • 根据你的数据改变
  • 非常感谢,它有效。如果你有时间,你能解释一下我的代码有什么问题吗?
  • 我认为您使用的 delimiter(;) 是错误的更多php.net/manual/en/function.fputcsv.php 如果您认为正确,请接受所有答案
【解决方案2】:

使用, 而不是; 代表delimiter

fputcsv($file, $value,";"); 替换为fputcsv($file, $value, ","); 并尝试

例子:

header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename=report_'.time().'.csv;');
$data = array(array('one' => 1, 'two' => 2));
$file = fopen('php://output','w');
foreach($data as $i => $value)
{
    //fputcsv($file, $value, ";");
    fputcsv($file, $value, ",");
}
fclose($file);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 2017-10-20
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多