我已经阅读了有关换行和csv文件的所有其他帖子,但没有一个适用于此。
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=affiliate_emails_from".$from."_to_".$to.".csv");
header("Pragma: no-cache");
header("Expires: 0");
echo 'First name,Last name,Email \r\n';
foreach($account_emails as $value) echo $value['first_name'].','.$value['last_name'].','.$value['email'].' \r\n';
有人可以帮忙更改此内容以在csv文件中开始新行吗?我的任务的限制是我无法将文件写入服务器然后链接到它。我必须将文件直接输出到浏览器作为下载。
由于
如果有人碰到这个:
echo 'First name,Last name,Email \r\n'; //won't work
echo "First name,Last name,Email \r\n"; // works
答案 0 :(得分:1)
你应该使用fputcsv()函数,然后每次调用该函数都算作新行。
在下载之前,您无需保存CSV。
// output headers so that the file is downloaded rather than displayed
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=guarantees.csv');
// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');
// output the column headings
fputcsv($output, array('First Name', 'Last Name'));
等等。每次调用该函数时,它都是CSV中的新行。