簡體   English   中英

跳過在PHP中讀取CSV Excel文件的空行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM