0

我在 php 中有一个字符串,例如 this "Title1,Title2,Title3,row1a,row1b,row1c,row2a,row2b,row2c"etc ,基本上我的整个 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 所需要的)。

关于我应该如何做这件事的任何想法?

4

1 回答 1

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);
}
于 2018-10-01T15:27:15.453 回答