Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查已上载csv中的空行_Php_Codeigniter_Csv - Fatal编程技术网

Php 如何检查已上载csv中的空行

Php 如何检查已上载csv中的空行,php,codeigniter,csv,Php,Codeigniter,Csv,这里我有一个csv文件,其中包含许多联系人行,这些行保存到我的数据库表中。现在我只想检查客户上传的csv中的空行 下面是一个带有一些空行的csv示例 在上面的csv中,第3行和第6行为空。因此,您希望检查这些空行号,并丢弃带有错误的csv 这是我的csv代码 $filename = $_FILES["csv_file"]["tmp_name"]; if ($_FILES["csv_file"]["size"] > 0) { $fil

这里我有一个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);
            }

我只是想得到一点帮助。感谢您的努力:)

我建议您使用下面提到的库。这将帮助您解决上述问题,也将减少控制器中的代码行数

这对你有帮助

如果您担心如何使用,请检查下面提到的代码

$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;

我建议你使用下面提到的图书馆。这将帮助您解决上述问题,也将减少控制器中的代码行数

这对你有帮助

如果您担心如何使用,请检查下面提到的代码

$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;

当第一列为空时,不检查其余列是否安全?unset将从数组中删除一个条目,或者continue将跳过该循环的逻辑。如果第一列为空,是否可以安全地说,不检查其余的?unset将从数组中删除一个条目,或者continue将跳过该循环的逻辑。谢谢,你能告诉我该库的名称吗?
Parsecsv
是库的名称,你可以在这里找到它——谢谢@Shyaam,但它们是一个问题。。!是的,您可以分享您的错误,我将帮助您在CIcan中实现这一点,然后我将向您简要介绍我的问题。谢谢汉克斯,你能告诉我那个图书馆的名字吗?
Parsecsv
是图书馆的名字,你可以在这里找到它——谢谢@Shyaam,但他们的名字是个问题。。!是的,您可以分享您的错误,我将帮助您在CIcan中实现这一点,然后我将向您简要介绍我的问题。谢谢