[获取行数]php读取大文件提供性能的方法,PHP的stream_get_line函数读取大文件获取文件的行数的方...
背景:
下面是获取文件的行数的方法:
一个文件如果知道有几行的话,就可以控制获取一定的行数的数据,然后放入数据库。这样不管的读取大文件的性能,还是写入数据库的性能,都能得到很大的提高了。
下面是获取文件的行数的方法
$temp_file = 'error.log';
$fp = fopen($temp_file ,'r') or die("open file failure!");
$total_line = 0;
if($fp){
/* 获取文件的一行内容,注意:需要php5才支持该函数; */
while(stream_get_line($fp, 8192, "\r\n")){
$total_line++;
}
fclose($fp);
}
接下来好操作了吧?
以下的程序主要是每次最大入库1000条,余数不足1000的就入余数。
入库10W条数据时间也才几秒,所以说性能是大大滴的好的。
define('EACH_NUM', 1000);/* 每次入库的条数 */
if(!$total_line) die('no record!');
$logs = mod('logs_error');
$temp = array();
$num = ceil($total_line/EACH_NUM);
$mod = fmod($total_line,EACH_NUM);
for($i=0;$i<$num;$i++){
if(($i+1) == $num && $mod){
$temp = $logs->getFileLines($temp_file, $i*EACH_NUM+1, $mod);
$insert_num += $mod;
}else{
$temp = $logs->getFileLines($temp_file, $i*EACH_NUM+1, ($i+1)*EACH_NUM);
$insert_num += EACH_NUM;
}
/* 入库 */
$logs->insert($temp);
}
@unlink($temp_file);
echo "Insert Record:{$insert_num} \nSuccess";
exit();
如果你还有更好的操作文件的方法,或者是更好的入库的方法,可以联系我,我们交流下。
来自:http://www.tuicool.com/articles/yQn2q2
$file='xxx.file';
list($size, $file) = explode(" ", system("wc -l $file"));
//$size即文件的行数
[获取行数]php读取大文件提供性能的方法,PHP的stream_get_line函数读取大文件获取文件的行数的方...的更多相关文章
- 文件监控性能问题【BUG】
文件监控性能问题[BUG] 背景:JAVA写了一个文件夹目录监控的程序,使用的是org.apache.commons.io.monitor 包,项目稳定运行了一个月,现场反馈,文件夹数据处理越来越慢, ...
- linux打开文件数量的查看方法
linux打开文件数量的查看方法 linux打开文件数量的查看方法在网上查到两种查看linux打开文件数量的查看方法,但结果不相同,linux查看文件打开数量是以那个文件或命令为标准呢? 搜索过关于u ...
- Python基于正则表达式实现文件内容替换的方法
Python基于正则表达式实现文件内容替换的方法 本文实例讲述了Python基于正则表达式实现文件内容替换的方法.分享给大家供大家参考,具体如下: 最近因为有一个项目需要从普通的服务器移植到SAE,而 ...
- Python导出DBF文件到Excel的方法
Python导出DBF文件到Excel的方法 这篇文章主要介绍了Python导出DBF文件到Excel的方法,实例分析了Python基于win32com模块实现文件导出与转换的相关技巧,分享给大家供大 ...
- python计算文件的行数和读取某一行内容的实现方法
一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(op ...
- 【转载】python计算文件的行数和读取某一行内容的实现方法
一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(o ...
- php使用file函数、fseek函数读取大文件效率分析
php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下. 1. 直接 ...
- PHP读取大文件的几种方法介绍
读取大文件一直是一个头痛的问题,我们像使用php开发读取小文件可以直接使用各种函数实现,但一到大文章就会发现常用的方法是无法正常使用或时间太长太卡了,下面我们就一起来看看关于php读取大文件问题解决办 ...
- PHP读取大文件的几种方法
场景:PHP读取超大文件,例如1G的日志文件,我这里使用的是400M的access.log文件 1.使用file直接读取 <?php $starttime=microtime_float(); ...
随机推荐
- ARM的存储器映射与存储器重映射
转:http://www.360doc.com/content/12/1006/00/1299815_239693009.shtml arm 处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存 ...
- C++与Flash的交互
研究Flash嵌入游戏中的可行性....... 渲染问题已解决 事件响应已解决 下面是C++与Flash AS的交互, 以MFC为例: 1. 新建一个MFC Dialog程序 2. 添加一个Flash ...
- 常见Linux命令(非文件操作)
可见 http://man.linuxde.net/systemctl 非常详尽
- Jenkins环境初步配置
为研究在kubernetes上的CICD,先在物理环境下安装个JenKins热热身. 安装Jenkins 在官网https://jenkins.io/下载war包,我的是http://mirrors. ...
- Windows命令行的使用
在介绍Windows批处命令前,我们首先来介绍Windows命令行的使用. Windows shell提供了一个黑色的框框界面,即命令行操作界面,关于命令行的作用和好处,我就不费口舌了,下面仅窥见一斑 ...
- ORA-04030
ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析及解决办法 正在使用的oracle 11g数据库,前天在用一段时间后(开始要较长时间才出现,后来较短时间就出现),频繁报OR ...
- Linux 服务器环境启动
1.PHP 关闭php killall php-fpm php重启 /usr/local/php/sbin/php-fpm & 或者 /usr/local/php/sbin/php-fpm { ...
- JAVA逐行读取TXT文件
package help; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; imp ...
- Akka概念集
(转)http://www.csdn.net/article/2014-12-17/2823174 在Akka里面,和Actor通信的唯一方式就是通过ActorRef.ActorRef代表Actor的 ...
- 向大家推荐两个灰常好用的插件LigerUI和报表控件highcharts
废话不多说上一张图看看,向大家推荐两个灰常好用的插件LigerUI和报表控件highcharts.欢迎大家进技术群讨论:QQ群:15129679 http://ligerui.com/和http:// ...