删除字符串后多余的逗号
我的 CSV 文件中有很多数据。我编写了一些代码来仅提取第 1 列并将其放入 txt 文件中:
fwrite($file2, $data[0].',');
现在,这创建了一个 TXT 文件,其中所有值均以逗号分隔。 但是,在读取最后一个值后,有一个额外的逗号,
我不需要这个,因为当我使用 foreach($splitcontents as $x=> $y)
使用逗号分隔符时,它由于额外的逗号,在末尾读取了一个垃圾值。
如何删除或避免末尾的逗号?
I have a lot of data in a CSV file. I wrote some code to extract only column 1 and put it in a txt file:
fwrite($file2, $data[0].',');
Now, this created a TXT file with all values separated by a comma.
However, after the last value was read there was an extra comma
I don't need this, because when I used foreach($splitcontents as $x=> $y)
using a comma delimiter, it reads a garbage value at the end because of the extra comma.
How do I remove or avoid the comma at the end?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
fputcsv()
而不是错误地重新实现它。Use
fputcsv()
instead of misreimplementing it.,而不是自行按字段组装 CSV 文件:
您可以使用 fputcsv() 来将其转换为正确的格式 第二个参数必须是一个数组。如果您确实只想要一列,则忽略其余部分。
另外,要读回文件,请查看
fgetcsv()
。这可能会简化您的 foreach + $splitstring 方法。Instead of assembling the CSV file yourself field-wise you could use fputcsv() which puts it into the right format:
The second parameter must be an array. If you really only want one column, then leave out the rest.
Also for reading the files back in, check out
fgetcsv()
. This might simplify your foreach + $splitstring approach.解决该问题的一种方法是在拆分第二个文件之前对从第二个文件加载的数据使用 rtrim($data, ',')。这将删除尾随的逗号。
如果您想修复文件本身,可以这样做:
您必须在调用
fclose()
之前执行此操作One way to solve the problem is to use
rtrim($data, ',')
on the data you load from the second file before splitting it. This will remove the trailing comma.If you want to fix the file itself, you can do this:
You have to do this just before you call
fclose()