我的csv看起来像这样:
column1_row1;column2_row1;column3_row1;column4_row1;... column15_row1
column1_row2;column2_row2;column3_row2;column4_row2;... column15_row2
column1_row3;column2_row3;column3_row3;column4_row3;... column15_row3
现在我必须找到每一行:
在第一行:
插入,更新并最终删除: 如果不再验证变体(> = 5%),不仅要执行相同的过程,还要检查和注册百分比变化,并删除带有id_number的相应行。
修改
我发现了这样的事情:
$file_handle = fopen("filename.csv", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
print $line_of_text[0];
}
fclose($file_handle);
但是,如果它遇到一个逗号,它会截断,我必须避免,然后必须访问列值,我不需要整行,如果csv包含许多长文本,你会建议大小而不是1024描述
答案 0 :(得分:1)
您的示例csv是以分号分隔(而不是逗号),因此您需要将fgetcsv更改为:
$line_of_text = fgetcsv($file_handle, 1024, ';');
来自fgetcsv的PHP手册:
<强>长度强>
它在PHP 5中成为可选项。省略此参数(或在PHP 5.0.4和&gt;之后将其设置为0),最大行长度不受限制,稍微慢一点。
这将使你的行看起来像:
$line_of_text = fgetcsv($file_handle, 0, ';');
即使你可能不需要文件中的整行,你仍然会得到它,因为这是fgetcsv的工作方式。
此数组为零索引,因此您的column1将位于位置0。
获得该行后,您可以使用所需的字段,例如:
if ($line_of_text[11] == 'word')
// do something
if (($line_of_text[7] - $line_of_text[9]) / $line_of_text[9] >= 0.05)
// do something