2014-03-26 21 views
0

我想從我的網頁創建一個CSV文件,並且遇到換行/卡拉格退貨問題。從PHP創建CSV文件,沒有換行

我正在通過Javascript建立CSV字符串,然後在每行的末尾添加'\ u000A'+「\ u000D」。

然後我通過AJAX將我的CSV sting傳遞給PHP程序。我的PHP邏輯創建的文件是: -

header('Content-Disposition: attachment; filename="effortTool.csv"'); 
header('Content-Type: text/plain'); 
header('Content-Length: ' . strlen($content)); 

當我認爲它不包含任何換行/ carraige retuns文件。

如果我輸出CSV字符串作爲「警報」,我可以看到它格式化爲corerctly。這告訴我換行字符正在被添加,但作爲文件下載時正在丟失。

任何想法?

感謝

馬丁

+0

任何你爲什麼用javascript構建csv而不是php的原因? –

+0

該Web應用程序是用HTML/Javascript編寫的。它會對我選擇的語言有所影響嗎? –

回答

1

你把類型的Content-Length的元數據文件的內容,這是錯誤的。

試試這個:php download file: header()

+0

這給了我同樣的問題,但是,我連接了'\ r \ n'。 「boohoo」到我的CSV內容和文件被正確創建。因此,我將把文件內容作爲數組傳遞給PHP,並讓PHP添加新的行內容。 –

3

使用下面的代碼生成CSV文件: -

ob_clean(); 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: filename=effortTool.csv"); 
header('Content-Length: ' . strlen($content)); 
print $content; 
exit; 

這是爲我工作,希望它會爲你工作了。