需要使用php处理大型csv文件。 使用fgetcsv和性能似乎相当不错。为了更好/更快的处理,我希望csv文件在第一行有列名,现在缺少。
现在我想在使用fgetcsv处理文件之前,用PHP将带有列名的顶行添加到csv文件中。
有没有办法轻松地在php的顶部添加一行?或者这是否意味着我必须采取如下方法?
我们非常感谢您提供有关如何以最有效的方式执行此操作的任何反馈。谢谢你的时间:))
答案 0 :(得分:3)
请尝试这个......更加简单直接。
$file = 'addline.csv';
$header = "Name, IP, Host, RAM, Task, NS \r\n";
$data = file_get_contents($file);
file_put_contents($file, $header.$data);
你完成了。希望这会有所帮助...
答案 1 :(得分:1)
答案 2 :(得分:1)
按照您提供的方式进行操作。没有简单的方法来扩展文件的开头而不是结束。这就像写在纸上。在文本下方添加新行很容易,但不能在文本上方写入。
请勿使用fopen($file, "r+")
或fopen($file, "c")
,因为这会删除文件开头或甚至所有行的现有行。
答案 3 :(得分:0)
为什么不手动在代码中定义标头,特别是如果每个文件都有相同的标头?
如果您确实需要在处理之前将标题插入CSV文件,则可以考虑使用sed,如下所示:sed -i 1i'"header 1","header 2"' file.csv