删除字符串后的额外逗号

时间:2011-03-19 05:28:56

标签: php csv delimited-text

我在CSV文件中有很多数据。我写了一些代码来仅提取第1列并将其放在txt文件中:

fwrite($file2, $data[0].',');

现在,这创建了一个TXT文件,其中所有值都以逗号分隔。 但是,在读取最后一个值后,还有一个额外的逗号

我不需要这个,因为当我使用逗号分隔符foreach($splitcontents as $x=> $y)时,它会因为额外的逗号而在末尾读取垃圾值。

如何删除或避免逗号?

3 个答案:

答案 0 :(得分:1)

使用fputcsv()而不是错误实现它。

答案 1 :(得分:1)

您可以使用fputcsv()将CSV格式设置为正确的格式,而不是自己组装CSV文件:

while (...) {
    fputcsv($file2, array($data[0], $data[1], $data[22])  );

第二个参数必须是数组。如果你真的只想要一列,那就剩下剩下的了。

再次阅读文件,请查看fgetcsv()。这可能会简化你的foreach + $ splitstring方法。

答案 2 :(得分:1)

解决问题的一种方法是在分割之前对从第二个文件加载的数据使用rtrim($data, ',')。这将删除尾随的逗号。

如果要修复文件本身,可以执行以下操作:

ftruncate($file2, ftell($file2)-1);

您必须在致电fclose()

之前执行此操作