【问题标题】:CSV league not skipping empty recordsCSV 联赛不跳过空记录
【发布时间】:2020-07-20 13:51:45
【问题描述】:

我正在使用 PHPleague 解析 csv 并将其插入数据库。 https://csv.thephpleague.com/

我的代码如下:

$csv = Reader::createFromPath($path, 'r');
$csv->skipEmptyRecords();

$csv->setHeaderOffset(0);
$csv_header = $csv->getHeader();

$stmt = (new Statement())
    ->offset('0')
    ->limit('20')
;

$records = $stmt->process($csv);
foreach($records as $record){
    print_r($record); // this show that it has processed empty records as well
}
exit();

我可以自己修剪空记录,也可以将以下函数调用为$records = $this->trimArray($records);

    public function trimArray($arr)
    {
        $final = array();

        foreach($arr as $k => $v)
        {
            if(array_filter($v)) {
                $final[] = $v;
            }
        }

        return $final;

    }

但是,我希望在此之前对其进行修剪。而不是添加我自己的层来过滤它无论如何都在 csvleague 到skipemptyrecords。我试过$csv->skipEmptyRecords();,但它没有跳过空记录。我做错了什么吗?

我的文件如下所示:

我想跳过所有那些空记录。

【问题讨论】:

  • 似乎是因为comma 它没有将它们视为空记录

标签: php thephpleague


【解决方案1】:

我对 League\CSV 有过简单的体验,并尝试从 csv 文件中捕获数据。软件包代码很大程度上取决于您安装的版本。所以第一步检查英雄联盟的版本。我认为您应该阅读有关流过滤器的 League 文档页面。 https://csv.thephpleague.com/9.0/connections/filters/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多