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 ...
随机推荐
- StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全
StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全 一.StartSSL个人证书登录申请 1.StartSSL官网: 1.官方首页:http://www.startssl.com/ 2 ...
- Java获取本机MAC地址
为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法. MAC可用于局域网验证,提高安全性. import java.net.InetAdd ...
- java 伪共享
MESI协议及RFO请求典型的CPU微架构有3级缓存, 每个核都有自己私有的L1, L2缓存. 那么多线程编程时, 另外一个核的线程想要访问当前核内L1, L2 缓存行的数据, 该怎么办呢?有人说可以 ...
- 用PYTHON输入输出字符串
这段好懂的,可以互动. import sys import re class BadEmployeeFormat(Exception): """Badly formatt ...
- elasticsearch spring 集成
elasticsearch spring 集成 项目清单 elasticsearch服务下载包括其中插件和分词 http://download.csdn.net/detail/u0142011 ...
- cocos2d-iphone加入芒果广告
cocos2d-iphone加入芒果广告的时候在模拟器上显示不出广告 真机上却可以.提示信息如下: AdsMoGo don't start alternate ADDRESPONSE - ADDING ...
- python2.7中使用mysql (windows XP)
一.首先下载mysql—python模块,下载完毕之后会有一个MySQL-python-1.2.3.win32-py2.7.exe文件,点击安装一路next,ok. 二.编辑配置文件(setting. ...
- 【HDOJ】前三百留念
4个月不到的时间,终于刷到了HDOJ前三百.肯定还不够,好多基本的算法还不了解.还得继续学习.以此留念,假期目标是前一百.
- Google Map API 代码示例
- n皇后问题leetcode-51. N-Queens
n皇后问题是应用回溯法的经典问题.任一行.列.对角线不能有两皇后并存,因此在判断是否合法时,可以将某一行是否有皇后.某一列是否有皇后分别用数组存起来.注意到,对于往左下右上的对角线,每个点的行号(i) ...