我有一个基本的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