AD

PHP按行读取.处理较大CSV文件的代码实例

这篇文章主要介绍了PHP按行读取、处理较大CSV文件的代码实例,需要的朋友可以参考下

对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象。

为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的。

下面这个函数是读取CSV文件中指定的某几行数据:

/**
 * csv_get_lines 读取CSV文件中的某几行数据
 * @param $csvfile csv文件路径
 * @param $lines 读取行数
 * @param $offset 起始行数
 * @return array
 * */
function csv_get_lines($csvfile, $lines, $offset = 0) {
    if(!$fp = fopen($csvfile, 'r')) {
     return false;
    }
    $i = $j = 0;
 while (false !== ($line = fgets($fp))) {
  if($i++ < $offset) {
   continue;
  }
  break;
 }
 $data = array();
 while(($j++ < $lines) && !feof($fp)) {
  $data[] = fgetcsv($fp);
 }
 fclose($fp);
    return $data;
}

调用方法:

复制代码 代码如下:

$data = csv_get_lines('path/bigfile.csv', 10, 2000000);
print_r($data);

函数主要采用行定位的思路,通过跳过起始行数来实现文件指针定位。

上述函数对500M以内的文件进行过测试,运行通畅,对于更大的文件未做测试,请斟酌使用或加以改进。

标签: csv, PHP, 读取CSV文件, 按行读取
分类: php实例
时间: 2014-05-10

相关文章

  1. asp.net+js 实现无刷新上传解析csv文件的代码

    无刷新上传解析csv文件的实现代码,需要的朋友可以参考下. 前阵子工作中用到,贴上代码,仅保留上传有关的代码,发现code其实很少. 上传页面html/js <!DOCTYPE html PUBLIC " ...
  2. PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)

    这篇文章主要介绍了一个PHP快速按行读取CSV大文件的封装类,这个类同时也适用于其它体积较大的文本文件,需要的朋友可以参考下 CSV大文件的读取已经在前面讲述过了(PHP按行读取.处理较大CSV文件的代码实例),但是如何 ...
  3. php操作csv文件代码实例汇总

    这篇文章主要介绍了php操作csv文件代码实例汇总,本文给出6个操作CSV文件的代码实例,包括读取.写入.读取指定区间等,需要的朋友可以参考下 1.读取csv数据, 输出到sales.csv文件中: $sales = a ...
  4. java读取csv文件示例分享(java解析csv文件)

    这篇文章主要介绍了java读取csv文件示例,这个java解析csv文件的例子很简单,下面直接上代码,大家参考使用吧 import java.io.*; import java.util.*; public class ...
  5. c语言读取csv文件和c++读取csv文件示例分享

    这篇文章主要介绍了c语言读取csv文件和c++读取csv文件示例,需要的朋友可以参考下 C读取csv文件 #include <stdio.h> #include <string.h> char * ...
  6. python读取csv文件示例(python操作csv)

    这篇文章主要介绍了python读取csv文件示例,这个示例简单说明了一下python操作csv的方法,需要的朋友可以参考下 import csv for line in open("test.csv" ...
  7. php使用fputcsv()函数csv文件读写数据的方法

    这篇文章主要介绍了php使用fputcsv()函数csv文件读写数据的方法,分析了fputcsv()函数针对csv文件的读写操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php使用fputcsv() ...
  8. php导入csv文件碰到乱码问题的解决方法

    这篇文章主要介绍了php导入csv文件碰到乱码问题的解决方法,需要的朋友可以参考下 今天主要是想写一个php导入csv文件的方法,其实网上一搜一大把.都是可以实现怎么去导入的.但是我导入的时候遇到了两个问题,一个是在wi ...
  9. php操作csv文件导入mysql时中文乱码的解决办法

    用网上通用的方法读取并上传csv文件内容进入mysql数据库中时,中文显示乱码,即使对数据用iconv函数转码后仍然乱码,这时可以用setlocale()函数: 这个函数经查阅是配置地域信息用的,在读取和写入csv数据前 ...
  10. H2 数据库导入CSV文件实现原理简析

    在开发应用中经常会碰到一些数据库方面的问题,例如:csv文件导入数据库,本文将以此问题进行深入介绍,需要的朋友可以参考下 1.启动H2数据库不打开浏览器窗口(默认是打开的) 2.数据库创建SQL增加了支持BigDecim ...
  11. java读取csv文件内容示例代码

    这篇文章主要介绍了java读取csv文件内容的示例,大家参考使用 package com.huateng.readcsv; import java.io.BufferedReader; import java.io.Fi ...
  12. php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法

    以下是对php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法进行了详细的分析介绍,需要的朋友可以过来参考下 date.csv:"ID" "NAME" &quo ...
  13. 基于PHP读取csv文件内容的详解

    本篇文章是对PHP读取csv文件的内容进行了详细的分析介绍,需要的朋友参考下 一次性读取csv文件内所有行的数据 <?php $file = fopen('windows_2011_s.csv','r'); whi ...
  14. PHP读取csv文件内容的方法详解

    PHP读取csv文件的内容的方法. 一次性读取csv文件内所有行的数据 <?php $file = fopen('windows_2011_s.csv','r'); while ($data = fgetcsv($ ...
  15. php对csv文件的读取,写入,输出下载操作详解

    以下是php对csv文件的读取,写入,输出下载操作进行了详细的分析介绍,需要的朋友可以过来参考下 <?php $file = fopen('text.csv','r'); while ($data = fgetcs ...
  16. php使用fgetcsv读取csv文件出现乱码的解决方法

    这篇文章主要介绍了php使用fgetcsv读取csv文件出现乱码的解决方法,实例分析了造成乱码的原因与对应的解决方法,并给出了Linux平台下的乱码解决方法,需要的朋友可以参考下 本文实例讲述了php使用fgetcsv读 ...
  17. PHP按行读取文件时删除换行符的3种方法

    这篇文章主要介绍了PHP按行读取文件时删除换行符的3种方法,需要的朋友可以参考下 PHP按行读取文件 去掉换行符"\n": 第一种: $content=str_replace("\n&quo ...
  18. shell按行读取文件的3种方法

    这篇文章主要介绍了shell按行读取文件的3种方法,需要的朋友可以参考下 方法有很多,下面写出三种方法: 写法一: #!/bin/bash while read line do echo $line done < ...
  19. js读取csv文件并使用json显示出来

    这篇文章主要介绍了js读取csv文件并使用json显示出来,需要的朋友可以参考下 摘要: 前面分享了用js将json数据下载为csv文件,方便后期管理.但是对于测试人员更希望能够以页面的形式展现任务,所以就做了一个将cs ...