将CSV文件保存到特定目录中

时间:2018-02-22 18:30:57

标签: php arrays

我从数组创建了一个CSV文件,但无法将其保存到特定目录中。

PHP函数喜欢从数组创建csv

public function outputCsv($fileName, $assocDataArray)
{
    ob_clean();
    header('Pragma: public');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Cache-Control: private', false);
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment;filename=' . $fileName);    
    if(isset($assocDataArray['0'])){
        $fp = fopen('php://output', 'w');
        fputcsv($fp, array_keys($assocDataArray['0']));
        foreach($assocDataArray AS $values){
            fputcsv($fp, $values);
        }
        fclose($fp);
    }
    ob_flush();
}

数组

$data = array(
    array( 'item' => 'Server', 'cost' => 10000, 'approved by' => 'Joe'),
    array( 'item' => 'Mt Dew', 'cost' => 1.25, 'approved by' => 'John')
    array( 'item' => 'IntelliJ IDEA', 'cost' => 500, 'approved by' => 'James'),
);

从此功能获取输出:

outputCsv('expenses.csv', $data);

根据此功能为我提供良好的解决方案

2 个答案:

答案 0 :(得分:0)

使用fopen

打开要保存的文件
$fp = fopen('path/to/file', 'w')

答案 1 :(得分:0)

您的代码是将文件保存在客户端中。 如果您的文件自动保存在默认的下载文件夹中,那么这是您浏览器中的配置,而不是代码中的配置。