【问题标题】:Get return value of fputcsv获取 fputcsv 的返回值
【发布时间】:2011-09-09 13:26:07
【问题描述】:

有谁知道一个函数或一个很酷的技巧来获取fputcsv 的返回值而不是将输出写入文件?

我正在尝试将文件编码为制表符分隔文件,但我的客户想要以 csv 编码的列之一(因此制表符分隔文件中的 1 列 csv 值)。不理想,我同意,但此时我只需要完成它。

谢谢!

【问题讨论】:

    标签: php csv


    【解决方案1】:

    无耻地从文档页​​面上的user note 复制:

    $buffer = fopen('php://temp', 'r+');
    fputcsv($buffer, $data);
    rewind($buffer);
    $csv = fgets($buffer);
    fclose($buffer);
    
    // Perform any data massaging you want here
    echo $csv;
    

    除了php://temp之外,所有这些都应该看起来很熟悉。

    【讨论】:

    • 接受了这个答案,因为它更完整。效果很好!不过要注意的是,请确保在 fgets 之后 trim 删除 fputcsv 添加的新行!
    • 注意:fgets($buffer) 只会得到 1 行 - 考虑改用 stream_get_contents($buffer)
    【解决方案2】:
    $output = fopen('php://output', 'w');
    fputcsv($output, $line);
    fclose($output);
    

    如果您不想直接输出,请尝试其他supported wrappers 之一,例如php://memory

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2019-03-07
      相关资源
      最近更新 更多