使用fputcsv()

时间:2017-06-30 15:48:18

标签: php csv

我正在尝试从我网站上的数组中输入的数据进行CSV导出。我正在使用this question来帮助我。我得到的数据应该在我的网站上回显的CSV中,但不会导出到文件中。这是我从问题中得到的代码:

        header( "Content-Type: text/csv;charset=utf-8" );
        header( "Content-Disposition: attachment;filename=\"$filename\"" );
        header("Pragma: no-cache");
        header("Expires: 0");

        $fp= fopen('php://output', 'w');

        foreach ($data as $fields){
            fputcsv($fp, $fields);
        }
        fclose($fp);
        exit();

我不完全理解header()函数正在做什么。我如何将其下载到文件中?

如果它有助于我的数组采用这种格式:

$data = array(dataset1(array, of, data), dataset2(array, of, data), dataset#(array, of, data));
编辑:我的$ data数组在会话变量中,并且它没有下载的原因是因为我有session_start()而有些包含在顶部。而不是下载它将回显到屏幕,但如果我删除它下载,代价是没有数据导出。任何人都有解决方案吗?

1 个答案:

答案 0 :(得分:0)

header()函数使用相应的值向您的浏览器发送HTTP标头。 然后,它将CSV数据发送到输出流,由于标题,浏览器将其解释为可下载文件。