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>";  //此处设一个计时器 结束时间
?>

得到结果:

这种方法测试的可以明显看出来,还是第一种方法要好的多。

时间: 2024-09-27 10:06:19

PHP获取文件行数的相关文章

linux c 获取文件行数

源代码如下: /*获取文件行数*/ int file_wc(const char *filename) { int fd; register int linect = 0; char buf[MAXBSTZE]; int len; char *p = NULL; if(filename) { if((fd = open(filename, O_RDONLY)) < 0) { fprintf(stderr, "open %s\n",strerror(errno)); return

JMeter获取CSV文件行数

1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 BufferedReader br=new BufferedReader(new FileReader("D:\\apache-jmeter-3.0\\用例\\productId_bookCityCode.csv")); 4 String tmpStr=""; 5 int rowNum=0; 6 while(tmeStr=br.readLi

oracle 与sql serve 获取随机行数的数据

Oracle 随机获取N条数据    当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目的1) select * from (select * from tablename order by sys_guid()) where rownum < N; 2) select * from (select * from tablename order by dbms_random.va

Linux - wc统计文件行数、单词数或字节数

一 wc简介 wc命令用来打印文件的文本行数.单词数.字节数等(print the number of newlines, words, and bytes in files).在Windows的Word中有个"字数统计"的工具,可以帮我们把选中范围的字数.字符数统计出来.Linux下的wc命令可以实现这个 功能.使用vi打开文件的时候,底下的信息也会显示行数和字节数. 二 常用参数 格式:wc -l <file> 打印指定文件的文本行数.(l=小写L) 以下参数可组合使用

python学习之——计算文件行数

# -*- coding: cp936 -*- #转载源于:http://blog.csdn.net/houyj1986/article/details/21196027 #计算文件行数 #1.文件比较小: fobj = open(r"C:\test.txt",'rU') len_fobj = len(fobj.readlines()) print len_fobj #2.文件比较大 len_fobj = -1 for len_fobj,line in enumerate(open(r

获取textview行数

获取textview行数 textview 代码 import android.content.Context; import android.graphics.Canvas; import android.text.Layout; import android.text.Layout.Alignment; import android.text.StaticLayout; import android.text.TextUtils; import android.util.AttributeS

统计文件行数

统计文件行数(单个文件): wc -l file 例如: [email protected]:~/workspace/android/game$ wc -l LGameAndroid2DActivity.java 906 LGameAndroid2DActivity.java 统计目录所有文件行数(全部目录): find . -name *.java | xargs wc -l 例如: [email protected]:~/workspace/android$ find . -name *.j

文件行数和代码行数统计

统计当前目录下,py文件数量:    find . -name "*.py" |wc -l统计当前目录下,所有py文件行数:    find . -name "*.py" |xargs cat|wc -l统计当前目录下,所有py文件行数,并过滤空行:    find . -name "*.py" |xargs cat|grep -v ^$|wc -l 统计某文件夹下文件的个数 ls -l |grep "^-"|wc -l 统计

linux文件行数统计

linux统计文件行数 文件行数统计cat employee.txt | wc -l 统计文件行数wc -l employee.txt cat employee.txt | wc -c 统计问价的字节数wc -c employee.txt cat employee.txt | wc -w 统计单词数wc -w employee.txt wc employee 同时统计文件行数.字符数.单词数 统计文件.目录.文件行数ls | wc -l 统计当前目录下的非隐含目录和非隐含文件的个数ls -a |