在php中读取csv excel文件时跳过空行

我有一个代码,上传一个csv文件,从中提取数据,并上传到数据库。一切工作正常,但我怎么能跳过空行,并继续读取数据的行。

这是我从csv文件中提取数据的代码

if (($source = fopen( $csv_file, "r")) !== FALSE) { //read data from excel while (($data = fgetcsv($source, 1000, ",")) !== FALSE) { $question=$data[0]; $point=$data[1]; $header=$data[2]; $footer=$data[3]; $type_value=$data[4]; $group_name=$data[5]; echo $question; }// while end } 

 if ($data[0] == NULL) continue; 

这是因为fgetcsv返回一个内部有一个空元素的非空数组。

尝试一下

 if ($data === null) continue; 

我没有testing,但我认为它应该工作。

尝试这个

 if (($source = fopen( $csv_file, "r")) !== FALSE) { // read data from excel while (($data = fgetcsv($source, 1000, ",")) !== FALSE) { if ((string) $data[0] != '0' and empty($data[0])) { continue; } $question = $data[0]; $point = $data[1]; $header = $data[2]; $footer = $data[3]; $type_value = $data[4]; $group_name = $data[5]; echo $question; } } 

如果您使用PHP的SplFileObject而不是基本的fgetcsv()函数,则它具有内置选项以跳过空行:

 $file = new SplFileObject($csv_file); $file->setFlags(SplFileObject::READ_CSV SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); foreach ($file as $data) { ... }