使用 PHP 迭代 csv 文件时Spl文件对象 http://php.net/manual/en/class.splfileobject.php和READ_CSV
标记我得到一个额外的行null
价值。有没有办法自动删除这一行?
$file = new SplFileObject(__DIR__.'/technologies.csv', 'r');
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
var_dump($row);
}
这将产生一行null
value.
...
array(1) {
[0] =>
NULL
}
您还想设置SplFileObject::SKIP_EMPTY http://php.net/manual/en/class.splfileobject.php#splfileobject.constants.skip-empty标志,并且为了使该功能也起作用SplFileObject::READ_AHEAD http://php.net/manual/en/class.splfileobject.php#splfileobject.constants.read-ahead flag.
The SplFileObject::SKIP_EMPTY http://php.net/manual/en/class.splfileobject.php#splfileobject.constants.skip-emptyflag 的作用正如它在锡上所说的那样:它会跳过空行。文件中的尾随换行符算作空行。
(Aside: SplFileObject::READ_AHEAD http://php.net/manual/en/class.splfileobject.php#splfileobject.constants.read-ahead is needed so that SplFileObject::SKIP_EMPTY http://php.net/manual/en/class.splfileobject.php#splfileobject.constants.skip-empty can do its job. The next line needs to be read, internally, so that PHP can determine if it is empty or not.)
因此,您的代码将如下所示(包含在多行中,以便您可以阅读):
$file->setFlags(SplFileObject::READ_CSV |
SplFileObject::SKIP_EMPTY |
SplFileObject::READ_AHEAD);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)