【发布时间】:2017-05-13 09:32:53
【问题描述】:
如果我尝试导入 csv 文件,所有空行也会被导入。
我有一个带有 csv 文件的表单
以下是表单动作代码
$file = $_FILES['file']['tmp_name'];
$allowedExts = array("csv");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if (!in_array($extension, $allowedExts)) {
$this->session->set_flashdata('msg', 'Please upload a csv file format.');
}
else {
$handle = fopen($file, "r");
$c = 0;
$flag = true;
while(($filesop = fgetcsv($handle, 0, ",")) !== false)
{
if($flag) { $flag = false; continue; } //to skip the title row
if($filesop != NULL ) { //CONDITION TO CHECK EMPTY ROWS (DOES not work..)
$data[] = array(
'id'=>0, //uploader user id
'field1' => (isset($filesop[14]) ? $filesop[14] : "" ),
'field2' => (isset($filesop[15]) ? $filesop[15] : "" ),
'field3' => (isset($filesop[1]) ? $filesop[1] : "" ),
'field4' => (isset($filesop[13]) ? $filesop[13] : "" ),
'field5' => (isset($filesop[6]) ? $filesop[6] : "" ),
'field6' => (isset($filesop[2]) ? $filesop[2] : "" ),
'field7' => (isset($filesop[5]) ? $filesop[5] : "" ),
'field8' => (isset($filesop[3]) ? $filesop[3] : "" ),
'field9' => (isset($filesop[4]) ? $filesop[4] : "" ),
);
}
}
echo "<pre>";
print_r($data);
exit;
请帮我解决,我该怎么做才能不导入空行
【问题讨论】:
-
也试过 if(array( null ) != $filesop) 条件,不起作用我做错了什么请告诉我我没有得到它
-
尝试用 if(!empty($filesop)) 替换 $filesop != NULL
-
也试过..那个
-
我想说直接在你的一个键上尝试 if 条件,如下 if(!empty($filesop[1])) 你能给我们看一个你的 CVS 的例子吗?
-
使用
$empty_filesop = array_filter( array_map( 'trim', $filesop) ); if( !empty( $empty_filesop)){ ... }