我有一个奇怪的问题。实际上我在使用ECSVExport的yii中使用export csv。它的工作正常。当我导出csv时,它的标题看起来像这样。
organisation_path, client_key and so on
现在我需要在标题之前添加一行(我的意思是上面的标题)。所以我在导出csv之后但在将文件保存到指定位置之前使用了以下行。
$handle = fopen($path, 'r+');
fputcsv($handle, array('version', '1'));
fclose($handle);
在我的csv中添加此内容后,添加了一个新行,如
version, 1
但我的标题标题变得像
on_path, client_key and so on
所以现在我的问题是当我在开始时添加新行然后为什么我的csv标题被打扰(我的意思是在它之前是organisation_path但是在添加行之后它变成了on_path)。有没有更好的方法在我的csv文件的开头添加行?实际上我不想在这里运行任何循环,因为我只想在标题标题之前添加一行。
非常感谢任何帮助。感谢。
答案 0 :(得分:3)
以r+
模式打开文件意味着
开放阅读和写作;将文件指针放在文件的开头。
因此,当您编写版本字符串时,将覆盖当前内容。您可以看到version, 1
和organizati
的长度相同。
因此,您可以在导出到文件之前编写版本。
或file_get_contents()
您的文件,在此字符串前加上您的版本字符串,然后使用file_put_contents()
将新数据写入文件。