zoukankan      html  css  js  c++  java
  • PHP读取大文件随记

    PHP在读取文件时,我们大多会采用fgets函数一行一行的读取,while循环,采用feof函数判断是否到达文件末尾。但我们有些时候读一行处理一行太麻烦,我们可以读取指定行后在进行一次处理。比如要将test.txt文件里面uid:fuid1,fuid2,fuid3读取出来插入数据库,读一行插入一行对数据库开销太大(需要建立连接等等操作),可以选择读取多行,先将其存如数组中,然后来一个批量操作,这样原本可能100条数据,每次插入50条,这样数据库就只需要连接两次就可以,开销大大减少。

     1 /**
     2  *
     3  *读取一个大文件,读取指定行后,执行某种操作
     4  *
     5  */
     6 
     7 function read_file($fileName, $length = 4) {
     8 
     9    if(!file_exists($fileName)) {
    10        die($fileName.'file not exists!');
    11    }
    12 
    13    $inputHandle = fopen($fileName,'r');
    14    $index = 0;
    15    $dataArray = array();
    16 
    17      while(!feof($inputHandle)) {
    18             $line = trim(fgets($inputHandle));
    19             //将数据放入数组中
    20             if($line != '') {
    21                   //对$line进行某种处理后将其放入数组中,比如拆分
    22                   $dataArray[] = $line;
    23                   $index ++;
    24             }
    25 
    26             if(feof($inputHandle) || $line == '' || $index == $length) {
    27                   //do someting 比如数据库操作
    28                   echo "----------".count($dataArray)."-----------\n";
    29                   //重新开始计数
    30                   $index = 0;
    31                   //重新初始化数组
    32                   $dataArray = array();
    33             }
    34      }
    35 }
  • 相关阅读:
    转: 关于linux用户时间与系统时间的说明
    转: 关于CAS cpu锁的技术说明。
    基于TCPCopy的Dubbo服务引流工具-DubboCopy
    Netty中的坑(下篇)
    编写明显没有错误的代码
    Zookeeper-Zookeeper client
    Zookeeper-Zookeeper leader选举
    Zookeeper-Zookeeper启动过程
    Zookeeper-Zookeeper的配置
    Zookeeper-Zookeeper可以干什么
  • 原文地址:https://www.cnblogs.com/smallstong/p/3073905.html
Copyright © 2011-2022 走看看