无法让PHP将CSV下载给用户

无法让PHP将CSV下载给用户,php,Php,当我使用此代码将内容下载到CSV文件和用户时,它只会向网站显示查询 $result = $conn->query($sql); if (mysqli_num_rows($result) > 0) { $counter=1; // open file and put herder to csv file $file = fopen('php://output', 'w'); fputcsv($file, array('id','name','test1','test2')); //

当我使用此代码将内容下载到CSV文件和用户时,它只会向网站显示查询

$result = $conn->query($sql);

if (mysqli_num_rows($result) > 0) {
$counter=1;

// open file and put herder to csv file
$file = fopen('php://output', 'w');
fputcsv($file, array('id','name','test1','test2'));
// put content to csv file
while ($row = mysqli_fetch_assoc($result)) {

    fputcsv($file, array($counter++,$row['name'],
                         ($row['test1']!=-1)?$row['test1']:'null',($row['test2']!=-1)?$row['test2']:'null'));
}
$csv_name=(isset($_GET['device'])&&$_GET['device']!='')?$_GET['device']:"all_devices";
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;'.
       'filename='.$csv_name.'_'.date('Y-m-d').'.csv');
} else {
  echo "No device found";
}
除了在
fputcsv()
前面移动
header()
调用之外,您还可以使用在脚本开始时调用
ob\u start()
,在脚本结束时调用
ob\u end\u flush()
,来四处走动