在PHP中为用户创建CSV文件

时间:2017-07-27
本文章向大家介绍在PHP中为用户创建CSV文件,需要的朋友可以参考一下。

需求:

我在MySQL数据库中有数据。我正在向用户发送一个URL,将其数据作为CSV文件发送出去。

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

当他们点击链接时,我怎么能弹出一个下载带有MySQL记录的CVS?

我已经掌握了记录的所有信息。我只是不知道如何让PHP创建CSV文件并让他们下载扩展名为.csv的文件。

实现方法

function download_csv_results($results, $name = NULL)
{
    if( ! $name)
    {
        $name = md5(uniqid() . microtime(TRUE) . mt_rand()). '.csv';
    }

    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename='. $name);
    header('Pragma: no-cache');
    header("Expires: 0");

    $outstream = fopen("php://output", "w");

    foreach($results as $result)
    {
        fputcsv($outstream, $result);
    }

    fclose($outstream);
}

它非常易于使用,并且适用于MySQL(i)/ PDO结果集。

download_csv_results($results, 'your_name_here.csv');