为什么这条新行在输出csv文件中开始一个新行?

时间:2015-02-23 17:00:12

标签: php csv

我已经阅读了有关换行和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

1 个答案:

答案 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中的新行。