使用PHP导出CSV文件尝试在MS Excel中打开时创build损坏的文件

我有以下脚本将导出数据从我的数据库使用PHP到CSV文件。 一切工作正常,除非当我尝试在Excel中打开文件,我得到“文件已损坏”。 当我运行这个代码时,它显示错误 – “文件已损坏,无法打开”。 提前致谢!

<?php // Connection include_once('conn.php'); $sql = "select * from info"; $qur = mysql_query($sql); // Enable to download this file $filename = "sampledata.csv"; header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: text/csv"); $display = fopen("php://output", 'w'); $flag = false; while($row = mysql_fetch_assoc($qur)) { if(!$flag) { // display field/column names as first row fputcsv($display, array_keys($row), ",", '"'); $flag = true; } fputcsv($display, array_values($row), ",", '"'); } fclose($display); exit; ?> 

我find了我自己的问题的答案。 只需要在调用头文件之前添加ob_clean()行来下载csv文件来清除输出缓冲区。 这将解决在Excel中不打开CSV文件的错误。