我在MySQL数据库中有数据。我向用户发送一个URL,以获取他们的数据作为CSV文件。

我有链接的电子邮件,MySQL查询等覆盖。

当他们点击链接时,如何弹出从MySQL下载带有记录的CVS的窗口?

我已经有了所有能拿到唱片的资料。我只是不明白如何让PHP创建CSV文件,并让他们下载一个扩展名为. CSV的文件。


当前回答

创建您的文件,然后用正确的标题返回对它的引用,以触发另存为-根据需要编辑以下内容。将您的CSV数据放入$csvdata。

$fname = 'myCSV.csv';
$fp = fopen($fname,'wb');
fwrite($fp,$csvdata);
fclose($fp);

header('Content-type: application/csv');
header("Content-Disposition: inline; filename=".$fname);
readfile($fname);

其他回答

除了上述内容,你可能还需要补充:

header("Content-Transfer-Encoding: UTF-8");

它在处理包含多种语言的文件时非常有用,比如人名或城市。

创建您的文件,然后用正确的标题返回对它的引用,以触发另存为-根据需要编辑以下内容。将您的CSV数据放入$csvdata。

$fname = 'myCSV.csv';
$fp = fopen($fname,'wb');
fwrite($fp,$csvdata);
fclose($fp);

header('Content-type: application/csv');
header("Content-Disposition: inline; filename=".$fname);
readfile($fname);

编写自己的CSV代码可能是浪费你的时间,只是使用一个包,如league/ CSV -它为你处理所有困难的事情,文档是很好的,它是非常稳定/可靠的:

http://csv.thephpleague.com/

你需要使用作曲家。如果你不知道什么是作曲家,我强烈建议你去看看:https://getcomposer.org/

header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");

function outputCSV($data) {
  $output = fopen("php://output", "wb");
  foreach ($data as $row)
    fputcsv($output, $row); // here you can change delimiter/enclosure
  fclose($output);
}

outputCSV(array(
  array("name 1", "age 1", "city 1"),
  array("name 2", "age 2", "city 2"),
  array("name 3", "age 3", "city 3")
));

php: / /输出 函数

如何写在CSV文件使用PHP脚本?其实我也在找这个。这在PHP中很简单。 Fputs(处理程序,内容)-这个函数为我有效地工作。首先,您需要使用fopen($CSVFileName, ' wb ')打开需要写入内容的文件。

$CSVFileName = “test.csv”;
$fp = fopen($CSVFileName, ‘wb’);

//Multiple iterations to append the data using function fputs()
foreach ($csv_post as $temp)
{
    $line = “”;
    $line .= “Content 1″ . $comma . “$temp” . $comma . “Content 2″ . $comma . “16/10/2012″.$comma;
    $line .= “\n”;
    fputs($fp, $line);
}