【问题标题】:Issues Printing to CSV file打印到 CSV 文件的问题
【发布时间】:2017-08-30 04:45:25
【问题描述】:

我直接打印到 CSV 文件,以便用户可以保存他们的查询结果,在这种情况下从档案中复制报告。

我的数据是两位信息 - 标题和日期,我试图将它们添加到文件的前面,然后是报告的行。

$f = fopen('php://memory', 'w'); 
// loop over the input array

    // Add report title
    fputcsv($f, $reportname, $delimiter);

    //add the date
    fputcsv($f, $reportdate, $delimiter);

//add report text
foreach ($array as $line) { 
    // generate csv lines from the inner arrays
    fputcsv($f, $line, $delimiter); 
}

发生的情况是循环中数组中的文本被打印到文件中,但前两行没有。对于我的生活,我无法弄清楚。

欢迎任何建议,谢谢。

【问题讨论】:

  • $reportname,$reportdate 既设置又是数组?可以测试fputcsv($f, array('nameeeeeeeeeeeee'), $delimiter);
  • 解决了。谢谢你。太完美了。
  • 我对根据您选择的答案解决的问题感到困惑
  • 抱歉,它不会让我选择您的答案,因为它是评论,而不是答案 - 所以我尝试将您的建议作为自己的答案(并将其归因于您)。我认为其他人的建议也可能有效。 (我是新来的,我不确定选择是如何工作的。上帝知道做事有多种方法)

标签: php csv io output


【解决方案1】:

感谢https://stackoverflow.com/users/8011997/rtfm,问题已解决。 解决方案是 - 我想发送到文件的值必须是数组。所以我将它们转换为数组- (array)$var_Name- 并且效果很好。

那么谢谢你!

【讨论】:

    【解决方案2】:

    尝试使用

    $file='Statement '.$date.".csv";
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="'.$file.'";');
    

    然后以 CSV 格式回显内容。

    $ct = count($data);
    $ctr = 0;
    foreach($datas as $data) {
    
        //workaround for removing quotes
            $val = explode(",", $data);
    
            //create a seperate function for this 
            $cv = count($val);
            $cvi = 0;
            foreach ($val as $k => $v){
                echo $v;
                //append comma except for last word
                $cvi++;
                if($cvi < $cv)
                    echo ",";
            }
    
            $ctr++;
            if ($ctr < $ct) echo "\n";//except for last line terminate with \n
    
        }
    

    我遇到了类似的问题,是从 SO 本身得到的。使用这个已经很久了。如果您想保留格式,这很有用

    【讨论】:

    • 我没有尝试这种方法,因为其他解决方案有效并且需要对代码进行较少更改 - 但谢谢。
    【解决方案3】:

    fputcsv 失败时也可以使用 fwrite 函数。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多