我有一個基本的PHP腳本,可以從數組中創建一個csv文件。下面是代碼示例:fputcsv添加一行以最後一個元素結尾
$array = [
[1,2,3],
[4,5,6]
];
$handle = fopen('test.csv', 'w');
foreach($array as $v)
fputcsv($handle, $v);
fclose($handle);
生成的文件總是在文件的最後一個空行,因爲fputcsv不知道,這是最後一道防線。任何(簡單)的想法如何防止這種情況?
編輯:
原來的問題是現在無關(給我,但也許有人會需要做到這一點)。 fputcsv應該添加一個新行,即使在文檔的末尾,這也是所有csv文件的預期行爲。
我標記了解決原始問題的答案,儘管它與我無關。因此在我的上下文中,我需要檢查數組的最後一行(或任何行)是否爲NULL(否則PHP將通過一個Warning,fputcsv的第二個參數爲null)。這是我的更新腳本如果有人有興趣:
$array = [
[1,2,3],
[4,5,6]
];
$handle = fopen('test.csv', 'w');
foreach($array as $v)
if($v != NULL)
fputcsv($handle, $v);
fclose($handle);
所有行應該有一個行後面結束。一個空行將是連續的兩條新行。 – Barmar
在文件末尾有空行有什麼問題?爲什麼這是不需要的?當我打開文件時,我運行了你的代碼並且Excel顯示了2行。 –
該腳本實際上是一個類的一半,它需要一個csv,將其轉換爲一個數組,然後返回一個新的csv(以便您可以使用PHP來更改CSV)。我不希望任何額外的行不在原始文檔中。 – user1564018