fputcsv在.csv的开头插入空行

时间:2013-05-17 13:54:32

标签: php fputcsv

<?php

$filename="backup_".date('m/d/Y', time()).".csv";

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');

$q=mysqli_query($conn,"SELECT * FROM visitordb");
$file = fopen('php://output','w');
if(mysqli_num_rows($q)>0) {
    while($res = $q->fetch_assoc()) {
        $datas = $res["sno"].','.$res["UDID"].','.$res["taggnumber"].','.$res["name"].','.$res["designation"].','.$res["company"].','.$res["email"];
        fputcsv($file, explode(',', $datas));
    }
} else {

}

fclose($file);
}

当以ms excel查看时,上面的代码在.csv文件的开头生成空行。另外一件事.csv文件还会在页面中生成任何html代码。

1 个答案:

答案 0 :(得分:3)

如果删除标头指令会发生什么? 您必须知道标题是按新定义以新行结束的。 我可以想象这是\ n vs \ r \ n冲突。

如果一切都失败了,将整个输出放入缓冲区并稍后修剪:

ob_start();
...your code...
$out = ob_get_contents();
ob_end_clean();
echo trim($out);

祝你好运

泽索特