簡體   English   中英

如何檢查上傳的csv中的空行

[英]How to inspect empty rows in uploaded csv

這里我有一個csv文件,其中包含許多聯系人行,並將這些行保存到我的數據庫表中。 現在我只想檢查客戶上傳的csv中的空行。

這是一個帶有一些空行的示例csv

在此輸入圖像描述

在上面的csv中,第3行和第6行是空的。 所以想檢查這些空行號並丟棄csv錯誤。

這是我的csv代碼

$filename = $_FILES["csv_file"]["tmp_name"];
            if ($_FILES["csv_file"]["size"] > 0) {
                $file       = fopen($filename, "r");
                $importdata = fgetcsv($file, 10000, ",");
                $counter    = 1;
                while (!feof($file)) {
                    if ($counter > 1) {
                        $alldata[] = fgetcsv($file);
                    }
                    $counter++;
                }
                fclose($file);
                $csvfieldcounter = 1;
                foreach ($alldata as $importdata) {
                    $userdata = $this->session->userdata();
                    $userId   = $userdata['id'];
                    $status   = 'Y';
                    if ($importdata[4] == 'Disable' || $importdata[4] == 'disable')
                        $status = 'N';
                    else if ($importdata[4] == 'Enable' || $importdata[4] == 'enable')
                        $status = 'Y';
                    $data = array(
                        'customer_name' => $importdata[0],
                        'customer_email' => $importdata[1],
                        'customer_mobile' => $importdata[2],
                        'birth_date' => $importdata[3],
                        'status' => $status,
                        'user_id' => $userId,
                        'cat_type' => $file_cat
                    );
                    if ($importdata[2]) {
                        $run = $this->db->insert('customer', $data);
                        $csvfieldcounter++;
                        $id = $this->db->insert_id();
                    }
                }
                $this->session->set_flashdata('csv_imported','Your CSV have been successfully imported.');
                redirect('/customer', $csvfieldcounter);
            }

我只想得到一點幫助。 你的善意的努力將不勝感激:)

我建議你使用下面提到的庫。 這將有助於您解決上述問題,它還會減少控制器中的代碼行數。

https://github.com/parsecsv/parsecsv-for-php

這會對你有所幫助。

如果你擔心如何使用比檢查下面提到的代碼。

$this->load->library('Parsecsv');
$csv = new Parsecsv($file);
$users = $csv->data;
$noOfUsers = count($users);
foreach($users as $user):
   if(!empty($user)):

      // Write your code

   endif;
endforeach;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM