<?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);
}
Приведенный выше код создает пустую строку в начале файла .csv при просмотре в MS Excel. Еще одна вещь, файл .csv также генерирует любой HTML-код на странице.
$file = fopen('test.csv','w'); ...
, а в этом файле на сервере все еще была пустая строка? Вы проверили, нет ли у вас пустой строки в базе данных? - person Viktor S.   schedule 17.05.2013