php;使用fgetcsv和SplFileObject :: fseek;读行问题
发布时间:2020-12-13 22:51:13 所属栏目:PHP教程 来源:网络整理
导读:当读取csv文件中的特定行时,我尝试将splFileObject :: fseek与fgetcsv一起使用. 要读取第2行(例如),我执行fseek(1)并使用fgetcsv读取,它给出第2行. 当我执行fseek(0)并使用fgetcsv读取时,我有第0行. 因此,以这种方式读取第1行存在问题. (我知道我可以连续阅
当读取csv文件中的特定行时,我尝试将splFileObject :: fseek与fgetcsv一起使用.
要读取第2行(例如),我执行fseek(1)并使用fgetcsv读取,它给出第2行. 当我执行fseek(0)并使用fgetcsv读取时,我有第0行. 因此,以这种方式读取第1行存在问题. (我知道我可以连续阅读2行但不认为它很好). 我在2008年使用PHP 5.2.6:SplFileObject: fgetcsv after seek returns wrong line发现了这个问题. 我正在使用PHP版本5.4.19. 有没有人有关于此的一些信息? 解决方法
我知道这是一个很老的bug,但它仍然在bugs.php上打开
所以这里有一个我要分享的片段来实现相同的目标(至少在我的情况下有效) function readBigCsv($path,$skip=1) { $file = new SplFileObject($path,'r'); $file->setFlags(SplFileObject::READ_CSV); $file->seek($skip); while (!$file->eof()){ yield $file->current(); $file->next(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |