【问题标题】:fputcsv with tab delimiter带有制表符分隔符的 fputcsv
【发布时间】:2014-11-07 16:41:27
【问题描述】:

我想创建一个带有制表符分隔符的 CSV 文档。我已经尝试了很多东西并在整个互联网上进行了搜索,但没有一个网站提供有效的解决方案。这是我现在正在使用的脚本,但它在没有制表符分隔符的情况下导出

    $data[] = array("item 1", "item 2");
    $data[] = array("item 3", "item 4");
    $export = fopen("/export/test.csv", "w");
    foreach ($data as $row) {
      fputcsv($export, $row, "\t");
    }
    fclose($export);

我还尝试了不同的其他方法,而不是 \t,例如 chr(9),但没有任何效果。这个问题有什么解决办法吗?

【问题讨论】:

  • 这个解决方案在什么方面不起作用?出了什么问题?你如何检查结果? ideone.com/41ei6Z
  • 我将数据保存到 .csv 文档;测试.csv。在 ideone.com 示例中,它确实可以正常工作,因此在将数据保存到 .csv 文档时可能会发生错误?
  • PHP 不关心文件流是 php://output 还是磁盘上的文件。你还没有回答我发布的问题?您实际上在 csv 文件中得到了什么?使用文本编辑器进行检查。
  • MS Excel 导入 csv 文件时的分隔符是该版本的 MS Excel 本地特定的;但您通常可以通过在实际 csv 内容之前写一个 sep 行来强制它:fwrite($export, "sep=\t".PHP_EOL);
  • 我找到了另一个运行良好的解决方案:fputcsv($export, $row, ';', '"');

标签: php delimiter fputcsv


【解决方案1】:

正在寻找解决同一问题的方法。在 Mark Ba​​ker 的 cmets 中看到了解决方案

在将任何内容写入文件之前使用fwrite($export, "sep=\t".PHP_EOL);

【讨论】:

    猜你喜欢
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2015-11-25
    • 2012-04-05
    • 2012-12-09
    • 1970-01-01
    • 2021-02-23
    相关资源
    最近更新 更多