我想忽略 csv 导入文件的第一行。
$handle = fopen($_FILES['filename']['tmp_name'], "r"); //Membuka file dan membacanya
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import = "INSERT into t_dil_lpb (id_pelanggan,nama_pelanggan,gardu,tiang,lat,lon,tarif_daya,no_met,alamat,no_tlp,th_buat,kwh,segel,tegangan,arus,daya,total,sisa,idx,merek,mcb,display,ada,performansi,kode_pesan,waktu_ambil,keterangan,area,rayon)
values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]','$data[15]','$data[16]','$data[17]','$data[18]','$data[19]','$data[20]','$data[21]','$data[22]','$data[23]','$data[24]','$data[25]','$data[26]','$area','$rayon')"; //data array sesuaikan dengan jumlah kolom pada CSV anda mulai dari “0” bukan “1”
mysql_query($import) or die(mysql_error());
}
最佳答案
像这样
$row = -1;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
++$row;
if($row == 0 ) continue;
...
我们从 -1
开始,这样我们就可以在任何事情之前增加行数。
另一种方法是创建 header 数组:
$headers = fgetcsv($handle, 1000, ",");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$row = array_combine($headers, $data);
..
然后您可以使用 header 来引用数据,但 array_combine
要求两个数组的长度相同,因此如果缺少分隔符,可能会导致很多麻烦。
如果你的前两行是
first,middle,last
John,J,Doe
然后上面的代码(使用 array_combine)会给你
[
'first' => John,
'middle' => J,
'last' => Doe
]
如果您使用 SpLFileObject 类,您可以执行 $obj->seek(1);
http://php.net/manual/en/class.splfileobject.php
我个人更喜欢第二个示例,使用 SplFileObject 类,但我讨厌过程代码...
关于php - 忽略导入 csv 时的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48295884/