我正在寻找一种简单的方法来获取数组,将其转换为CSV并让用户能够下载CSV,而无需将CSV保存到服务器。
答案 0 :(得分:7)
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=test.csv");
$fp = fopen('php://output', 'w');
foreach ($array as $row) {
fputcsv($fp, $row);
}
请参阅fputcsv()
使用fputcsv的好处是它将为您处理字段的转义和封闭,确保有效,坚固的输出。不幸的是,它无法输出到字符串,所以我写入php的输出流。你也可以写'php:// memory',如果你需要在输出之前访问它,那么你可以像文件一样读它。
关于包装http://www.php.net/manual/en/wrappers.php.php 的信息
答案 1 :(得分:4)
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=test.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo "name,city,street\n";
有时最好使用
header("Content-Type: application/octet-stream");
for IE ...