【发布时间】: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, ';', '"');