从PHP创建CSV文件,没有换行符

时间:2014-03-26 13:40:15

标签: php file csv

我正在尝试从我的网页创建一个CSV文件,我遇到了换行/ carraige返回的问题。

我正在通过Javascript构建CSV字符串,然后添加' \ u000A' +" \ u000D"到每一行的末尾。

然后我通过AJAX将我的CSV sting传递给PHP程序。我创建文件的PHP逻辑是: -

header('Content-Disposition: attachment; filename="effortTool.csv"');
header('Content-Type: text/plain');
header('Content-Length: ' . strlen($content));

当我查看文件时,它不包含任何换行/ carraige返回。

如果我将CSV字符串输出为" alert",我可以看到它正在进行核心格式化。这告诉我正在添加换行符,但是当作为文件下载时会丢失。

有什么想法吗?

由于

马丁

2 个答案:

答案 0 :(得分:3)

使用以下代码生成CSV文件: -

ob_clean();
header("Content-type: application/vnd.ms-excel");
header( "Content-disposition: filename=effortTool.csv");
header('Content-Length: ' . strlen($content));
print $content;
exit;

这对我有用,希望它对你也有用。

答案 1 :(得分:1)

您将文件内容放在Content-Length类型的元数据上,这是错误的。

试试这个:php download file: header()