我正在尝试将PHP中的数组转换为要下载的csv。
当前数组看起来像这样
Array[0] = "Name,age,ID"
Array[1] = "Alex,26,1"
Array[2] = "Ryan,12,2"
Array[3] = "Steph,56,7"
等
我不确定如何以csv的形式下载此文件,显然每个数组位置是其自己的行,都是csv。
我将标题设置为以下内容:
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
然后我尝试回显数组的每个元素,希望它能起作用。如下:
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
foreach ($lines as &$line) {
echo $line;
}
$lines
是我的数组。
但是,它在csv中完成了所有一行。有没有办法让这个数组在csv中正确打印?
答案 0 :(得分:3)
您必须添加换行符
echo $line . "\n";
更好
echo $line . PHP_EOL; //constant for correct line-ending depending on OS.
答案 1 :(得分:1)
解决方案之一是fputcsv
函数。
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
$output = fopen('php://output', 'w');
foreach ($lines as $line) {
$row = explode(',', $line);
fputcsv($output, $row);
}
fclose($output);