直接从阵列输出到CSV而不保存到CSV文件

Lee*_*Lee 4 php csv arrays file

我正在寻找一种简单的方法来获取阵列,将其转换为CSV并让用户能够下载CSV,而无需将CSV保存到服务器.

goa*_*oat 9

$array = [
    ['name', 'email'],
    ['Doe, John', 'johndoe@foo'],
    ['Jane Doe', 'janedoe@foo'],
    ['Ron "SuperFly" O\'Neal', 'supafly@foo'],

];
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=test.csv");
$fp = fopen('php://output', 'w');
foreach ($array as $row) {
    fputcsv($fp, $row);
}
Run Code Online (Sandbox Code Playgroud)

fputcsv()

使用fputcsv的好处是它将为您处理字段的转义和封闭,确保有效,坚固的输出.不幸的是,它无法输出到字符串,所以我写入php的输出流.你也可以写'php:// memory',如果你需要在输出之前访问它,那么你可以像文件一样读它.

包装的信息http://www.php.net/manual/en/wrappers.php.php