2014-06-16 25 views
1

我有以下腳本將使用php將數據從我的數據庫導出到csv文件。一切正常,除非我嘗試在Excel中打開文件,我得到「文件已損壞」。當我運行這段代碼時,它顯示錯誤 - 「文件已損壞,無法打開。」提前致謝!使用PHP導出CSV文件當嘗試在MS 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; 
?> 
+3

嘗試在記事本或其他文本編輯器中打開文件。它看起來有什麼問題嗎? –

+0

強制性:不推薦使用'mysql_'擴展名,請升級到'mysqli_'或PDO。 –

+0

@JonathanKuhn:是的,它與其他文本編輯器一樣工作,如記事本,openoffice等,但不是在MS Excel中。 –

回答

0

我找到了自己的問題的答案。在我們調用頭文件來下載csv文件來清除輸出緩衝區之前,只需要添加ob_clean()行。這將解決在Excel中不打開csv文件的錯誤。

相關問題