php - 确保 fgetcsv() 读取整行

标签 php csv

我正在使用 PHP 通过 fgetcsv() 从 CSV 文件导入数据,这会为每一行生成一个数组。最初,我将字符限制设置为 1024,如下所示:

while ($data = fgetcsv($fp, 1024)) {
  // do stuff with the row
}

但是,具有 200 多列的 CSV 在许多行上超过了 1024 的限制。这导致读取的行停在一行的中间,然后下一次调用 fgetcsv() 将从上一次停止的地方开始,依此类推,直到达到 EOL。

此后我将此限制提高到 4096,这应该可以解决大多数情况,但我想进行检查以确保在获取每一行后读取整行。我该怎么做?

我想检查数组最后一个元素的末尾是否有行尾字符(\n、\r、\r\n),但这些不会被 fgetcsv() 调用解析出来吗?

最佳答案

只需省略长度参数。它在 PHP5 中是可选的。

while ($data = fgetcsv($fp)) {
  // do stuff with the row
}

关于php - 确保 fgetcsv() 读取整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10746013/

相关文章:

php - CodeIgniter 计数太慢 - 分页

php - 使用 PHP cURL 固定证书

php - Rest API 404 页面未找到

R:从 csv 中提取正确的时间日期

java - CSV 到双数组列表

php - 拼写错误在 PHP 中产生意外结果

php - 将 .CSV 导入 MySQL 数据库

linux - 从文件夹中的所有 tsv 文件中提取前三列

python - 使用python实现异构csv的数据结构

php - 想要使用多个术语时查询中 LIKE 子句的顺序