Php 如何检查已上载csv中的空行
这里我有一个csv文件,其中包含许多联系人行,这些行保存到我的数据库表中。现在我只想检查客户上传的csv中的空行 下面是一个带有一些空行的csv示例 在上面的csv中,第3行和第6行为空。因此,您希望检查这些空行号,并丢弃带有错误的csv 这是我的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
$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中实现这一点,然后我将向您简要介绍我的问题。谢谢