PHP获取文件行数
提供两种实现方法,但是第一种效率最好
第一种:
<?php
$file_path = 'test.txt'; //文件路径 此处找一个1094644行的TXT文件 test.txt
$line = 0 ; //初始化行数
//打开文件
set_time_limit(0);
echo "开始时间:".date("H:i:s")."</br>"; //此处设一个计时器 开始时间
$fp = fopen($file_path , 'r') or die("open file failure!");
if($fp){
//获取文件的一行内容,注意:需要php5才支持该函数;
while(stream_get_line($fp,8192,"\n")){
$line++;
}
fclose($fp);//关闭文件
}
//输出行数;
echo $line."</br>";
echo "结束时间:".date("H:i:s")."</br>"; //此处设一个计时器 结束时间 ?>
查看一下网页显示结果:

连一秒都不到。可以看出这样的效率还是蛮高的。
第二种:
<?php
$file_path = 'test.txt'; //文件路径 此处找一个1094644行的TXT文件 test.txt
set_time_limit(0);
echo "开始时间:".date("H:i:s")."</br>"; //此处设一个计时器 开始时间
$line = count(file($file_path));
//输出行数;
echo $line."</br>";
echo "结束时间:".date("H:i:s")."</br>"; //此处设一个计时器 结束时间
?>
查看一下网页显示结果:

好像也很快,也不到1秒钟。
下面我再用时间戳试一下:
修改一下PHP语句
第一种方法:
<?php
$file_path = 'test.txt'; //文件路径 此处找一个1094644行的TXT文件 test.txt
$line = 0 ; //初始化行数
//打开文件
set_time_limit(0);
$start_time=microtime(true);//获取程序执行开始的时间
$fp = fopen($file_path , 'r') or die("open file failure!");
if($fp){
//获取文件的一行内容,注意:需要php5才支持该函数;
while(stream_get_line($fp,8192,"\n")){
$line++;
}
fclose($fp);//关闭文件
}
//输出行数;
echo $line."</br>";
$end_time=microtime(true);//获取程序执行结束的时间
$elapse=$end_time-$start_time; //获取差值
echo "消耗时间".$elapse."</br>"; //此处设一个计时器 结束时间 ?>
得到结果:

第二种方法:
<?php
$file_path = 'test.txt'; //文件路径 此处找一个1094644行的TXT文件 test.txt
set_time_limit(0);
$start_time=microtime(true);//获取程序执行开始的时间
$line = count(file($file_path));
//输出行数;
echo $line."</br>";
$end_time=microtime(true);//获取程序执行结束的时间
$elapse=$end_time-$start_time; //获取差值
echo "消耗时间".$elapse."</br>"; //此处设一个计时器 结束时间
?>
得到结果:

这种方法测试的可以明显看出来,还是第一种方法要好的多。
PHP获取文件行数的更多相关文章
- PHP如何获取文件行数
本文实例讲述了PHP获取文件行数的方法.分享给大家供大家参考.具体分析如下:提供两种实现方法,虽然第二种简单易懂,但是第一种效率最好第一种: <?php $file_path = 'xxx.tx ...
- shell获取文件行数
获取文件行数: echo `cat $file | wc -l` 获取文件中不重复的行数(去重后) echo `awk '{$1="";print $0;}' $file_tel ...
- java获取文件行数
public long getLineNumber(File file) { if (file.exists()) { try { FileReader fileReader = new FileRe ...
- python 获取文件行数
#如果要统计文件的行数,可以这样写: count = len(open(filepath, 'r').readlines()) #这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作. #可以利用 ...
- JMeter获取CSV文件行数
import java.io.BufferedReader; import java.io.FileReader; BufferedReader br=new BufferedReader(new F ...
- Shell脚本统计文件行数
Shell脚本统计文件行数 转自 http://www.jb51.net/article/61943.htm 示例:row_count.sh文件 awk '{print NR}' row_cou ...
- python学习之——计算文件行数
# -*- coding: cp936 -*- #转载源于:http://blog.csdn.net/houyj1986/article/details/21196027 #计算文件行数 #1.文件比 ...
- Python逐块读取大文件行数的代码 - 为程序员服务
Python逐块读取大文件行数的代码 - 为程序员服务 python数文件行数最简单的方法是使用enumerate方法,但是如果文件很大的话,这个方法就有点慢了,我们可以逐块的读取文件的内容,然后按块 ...
- Python 文件行数读取的三种方法
Python三种文件行数读取的方法: #文件比较小 count = len(open(r"d:\lines_test.txt",'rU').readlines()) print c ...
随机推荐
- oracle excute immediate 单引号转义
excute immedaite 后接单引号,但是遇到 add xxx default ' ' ,命令中还有单引号的情况,需要转义.这时候不是用传统的 \ 反斜杠来转义,而是用 单引号转义 execu ...
- SAP Crystal Dashboard Design 2011 win7 x64 安装
suggest: unZip the setup package to C:\dashboard\ (make sure that the path cannot contain non-unico ...
- appFramework在三星某些机型上的兼容问题
有个问题困扰了安卓哥好几天 一个带有fixed抬头的列表页,在向上swipe的时候,有一定概率会把整个画面滚动上去,就连fixed的部分也移动了. 于是哥觉得是webview的问题,找了各种选项,禁用 ...
- lc面试准备:Number of 1 Bits
1 题目 Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also ...
- 动态规划(树形DP):HDU 5886 Tower Defence
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2MAAAERCAIAAAB5Jui9AAAgAElEQVR4nOy9a6wsS3YmFL/cEkh4LP
- 连接池 BoneCPDataSource
一篇连接池不错的文章 http://blog.csdn.net/vincent_czz/article/details/7646392
- Rest中的XML与JSON的序列化与反序列化
#region 获取XML的序列化和反序列化 /// <summary> /// 对象进行序列化生成XML /// </summary> /// <typeparam n ...
- 【转】OpenGL相关函数库介绍
原文:http://blog.chinaunix.net/uid-20638550-id-1909182.html OpenGL 函数库相关的API有核心库(gl).实用库(glu).辅助库(aux) ...
- Unity 的 unitypackage 的存放路径
Windows,C:\Users\<username>\AppData\Roaming\Unity\Asset Store Mac OS X,~/Library/Unity/Asset S ...
- bzoj 3156 防御准备(斜率DP)
3156: 防御准备 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 837 Solved: 395[Submit][Status][Discuss] ...