【问题标题】:String to csv in php在php中将字符串转换为csv
【发布时间】:2018-10-01 15:20:12
【问题描述】:

我在 php 中有一个字符串,例如 "Title1,Title2,Title3,row1a,row1b,row1c,row2a,row2b,row2c" 等,基本上我的整个 csv 在一个字符串中。

我通过 post 将该字符串传递给我的 downloadcsv 文件,它看起来有点像:

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=Device_List.csv");
header("Pragma: no-cache");
header("Expires: 0");
$keys = array_keys($_POST);
$csvContent = $keys[1];
echo $csvContent;
die;

我确实得到了一个 csv 文件,但是一切都在一行中。问题是我不知道如何将其拆分为 csv 的多行。我尝试在末尾添加 /n 字符,如下所示:"Title1,Title2,Title3\n row1a,row1b,row1c\n row2a,row2b,row2c"

尝试了最后是否有逗号,尝试了 \r\n,似乎没有任何效果。有没有办法可以将这个字符串写入 csv,以便他们像他们应该的那样去换行?还考虑将其制成一个数组,但不确定这是否是要走的路线或如何将字符串拆分为包含数组的数组(我相信这是 fputcsv 所需要的)。

关于我应该如何做这件事有什么想法吗?

【问题讨论】:

  • 你是如何生成那个字符串的?听起来应该是title1, row1a, row2a
  • 那么您希望在 CSV 的每一行中包含什么内容
  • 我知道这听起来可能很愚蠢,但是您尝试过使用 html 吗?喜欢

标签: php string csv download


【解决方案1】:

PHP 爆发 http://php.net/manual/en/function.explode.php

PHP str_getcsv http://php.net/manual/en/function.str-getcsv.php

使用explode将行拆分为数组

$lines = explode("\n", $csv);

使用 str_getcsv 解析每一行

foreach ($lines as &$line) {
  $cols = str_getcsv($line);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多