zoukankan      html  css  js  c++  java
  • 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,"
    ")){
       $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,"
    ")){
       $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>";  //此处设一个计时器 结束时间
    ?>
    

    得到结果:

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

  • 相关阅读:
    全文索引--自定义chinese_lexer词典
    转 Oracle全文检索http://docs.oracle.com/cd/E11882_01/text.112/e24436/toc.htm
    .net安装windows服务配置文件config
    如何制作windows服务安装包
    spring jpa @Query中使用in
    sql trunc()的使用
    [转]轻松解决oracle11g 空表不能exp导出的问题
    HTTP协议状态码详解(HTTP Status Code)
    解决Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly
    解析Java对象的equals()和hashCode()的使用
  • 原文地址:https://www.cnblogs.com/quixon/p/4684898.html
Copyright © 2011-2022 走看看