【问题标题】:Creating CSV file from PHP, no line feed从 PHP 创建 CSV 文件,没有换行符
【发布时间】:2014-03-26 13:40:15
【问题描述】:

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

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

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

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

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

如果我将 CSV 字符串输出为“警报”,我可以看到它的格式正确。这告诉我正在添加换行符,但在下载为文件时会丢失。

有什么想法吗?

谢谢

马丁

【问题讨论】:

  • 您为什么要使用 javascript 而不是 php 构建 csv?
  • Web 应用程序是使用 HTML/Javascript 编写的。我选择哪种语言会有所不同吗?

标签: php file csv


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这给了我同样的问题,但是,我连接了 '\r\n' 。 “嘘”到我的 CSV 内容,并且文件已正确创建。因此,我将文件内容作为数组传递给 PHP 并让 PHP 添加新行内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2021-01-31
    • 1970-01-01
    • 2013-03-08
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多