在PHP中下载数组到csv
我正在尝试将PHP中的数组转换为csv以供下载 目前,该数组看起来像这样在PHP中下载数组到csv,php,arrays,csv,download,Php,Arrays,Csv,Download,我正在尝试将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:
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格式正确打印吗?您必须添加换行符
echo $line . "\n";
更好
echo $line . PHP_EOL; //constant for correct line-ending depending on OS.
你必须添加一个换行符
echo $line . "\n";
更好
echo $line . PHP_EOL; //constant for correct line-ending depending on OS.
解决方案之一是
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);
解决方案之一是
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);
@PatrickQ完成了,只是一个基本的回显,不认为需要。
echo“$line\n”
echo
不会自动在内容末尾添加换行符。您必须明确地这样做。@PatrickQ done,只是一个基本的回显,并不认为需要它。echo“$line\n”
echo
不会自动在内容末尾添加换行符。您必须明确地这样做亲爱的上帝,我是个哑巴。想想在用PHP编写了将近2年的代码后,我会发现这一点。如果允许,我会接受答案。跨平台换行使用PHP\u EOL
:echo$line,PHP\u EOL亲爱的上帝,我是个哑巴。想想在用PHP编写了将近2年的代码后,我会发现这一点。如果答案让我接受,我会接受的。