使用PHP从CSV文件中有条件地删除行


Conditional deleting of rows from CSV files using PHP

我正在为广告商双击下载csv报告。我的客户端需要将csv保存到数据库表中。在将csv保存到数据库之前,我需要从顶部删除几行,从底部删除总计行。PHP中有什么函数可以用来删除csv文件中指定的行吗?

没有具体的功能,但有几种方法可以实现

如果你有足够的RAM一次将整个文件保存在内存中,你可以使用将文件转换为数组

$data=explode("'n",file_get_contents("path/to/csv_file");

然后,为了去掉底部的总数,您可以用以下内容取消设置最后一行:

unset($data[sizeof($data)-1);

其工作方式是对数组中的每一行进行编号,但从零开始。"sizeof"应该是行数,但由于我们开始用零计数,所以它太多了。

要从顶部删除一些行,您可以

unset($data[0]); and unset($data[1]);

然后使用foreach()函数循环遍历行并插入数据库:

foreach($data as $line){
/// parse your $line 
/// Insert row into database
}