[英]Skip empty rows in reading csv excel file in php
我有一個代碼,其中上傳了一個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
}
如果使用PHP的SplFileObject而不是基本的fgetcsv()函數,則它具有內置選項可跳過空行:
$file = new SplFileObject($csv_file);
$file->setFlags(SplFileObject::READ_CSV SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
foreach ($file as $data) {
...
}
if ($data[0] == NULL)
continue;
這是因為fgetcsv返回一個內部為null的非空數組。
嘗試一下
if ($data === null) continue;
我沒有測試它,但我認為它應該可以工作。
嘗試這個
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.