fgetcsv skip blank lines in file

坚强是说给别人听的谎言 提交于 2019-12-01 03:41:34

As you can read in the documentation for fgetcsv():

A blank line in a CSV file will be returned as an array comprising a single null field, and will not be treated as an error.

Checking for that before adding it to your data array should be sufficient:

while (($result = fgetcsv($in)) !== false) {
    if (array(null) !== $result) { // ignore blank lines
        $csv[] = $result;
    }
}

This works 100% tested, simplest way. The explanation is that blank lines make fgetcsv return a non-empty array with just a null element inside.

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

In short

$csv = array_map('str_getcsv', file($file_path, FILE_SKIP_EMPTY_LINES));

Explanation

  1. file reads the content of the file into an array. The FILE_SKIP_EMPTY_LINES will skip the empty lines in the file.
  2. array_map will apply the function str_getcsv on each element of the array. str_getcsv will parse the string input for fields in csv format and return an array containing the fields.

Read more about str_getcsv

Read more about file

Read more about array_map

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!