【发布时间】:2012-10-04 08:08:04
【问题描述】:
我创建了一个 CSV 文件供我们的客户使用
$output = fopen('php://output', 'w');
并使用fputcsv()将数据写入客户端下载的CSV文件。
我在 Linux 上运行 PHP,因此许多 Windows 应用程序不解释行尾。
我可以将 CSV 文件写入服务器上的目录,将其读回并执行从 \n 到 \r\n 的 str_replace(),但这似乎是解决问题的一种相当笨拙的方法。有没有办法在不创建物理文件的情况下执行转换?
【问题讨论】:
-
除非用户在需要 CRLF 的 Windows 文本编辑器或一些非常旧的 Windows 应用程序中打开文件,否则它实际上并不重要......如今大多数 Windows 应用程序都可以识别一个简单的LF 代替
-
抱歉 +1 你在 1337,最优雅的代表。但是你的问题让我很感兴趣,也没有办法改变逃生字符......
-
@MarkBaker:是的,这就是我的预期。不幸的是,他们将 CSV 导入到他们使用的一些 MIS 中,这在这方面似乎并不比记事本更智能。
-
您是否阅读了 fputcsv 手册中的 cmets? lv.php.net/manual/en/function.fputcsv.php#90883
-
@lix: 是的,我当然有,我可以依靠你链接到的特定函数,但我想使用
fputcsv()并在之后转换行尾,而不是复制fputcsv()的全部功能并添加行尾转换。 PHP 用户笔记并不总是最好的资源。这就是我来这里的原因:)
标签: php csv line-endings