将数组写入csv会返回空白的csv文件

时间:2016-06-07 02:26:48

标签: php

我有一个名为$ content的数组,其行包含

之类的数据
$content[0]=name,title,city,country
$content[1]=name1,title1,city1,country1

如何将此数组保存为csv文件,以便名称在列上,标题为另一个,等等?

要将其写入外部文件,我的代码是

$file = fopen("d:/data.csv","w");

foreach ($list as $line)
{
    fputcsv($file,explode(',',$content));
}

fclose($file);

但它有空行和列。

2 个答案:

答案 0 :(得分:0)

你的变量全都搞砸了。它应该是:

foreach ($content as $line) {
    fputcsv($file, explode(',', $line));
}

但由于$line已经是逗号分隔的字符串,因此您不需要将其展开并使用fputcsv(),您可以按原样编写它。

file_put_contents("d:/data.csv", implode(PHP_EOL, $content) . PHP_EOL);

答案 1 :(得分:0)

嗨这是我的例子,我用过你可以用这个想法。

<?php
    $con=mysqli_connect("localhost","root","","a") or die("error");
    $res=mysqli_query($con, "select * from reg");
    $i = 0;
    while($row=mysqli_fetch_assoc($res)){
        $new[$i] =$row;
        $i++;
        }           
    function outputCSV($data) {
        $filename = "example";
    header("Content-type: text/csv");
    header("Content-Disposition: attachment; filename={$filename}.csv");
    header("Pragma: no-cache");
    header("Expires: 0");
        $outputBuffer = fopen("php://output", 'w');
        foreach($data as $val) {
            fputcsv($outputBuffer, $val);
        }
        fclose($outputBuffer);
    }    
    outputCSV($new);