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

    得到结果:

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

  • 相关阅读:
    Asp.net获取客户端的IP地址排除::1
    EF 筛选列包含NULL会报错
    layUI关于table编辑列支持方向键功能
    .NET CORE 发布IIS问题收集
    VS2019最新源代码管理工具+附下载地址
    关于Mysql可视化工具Navicat Premium12激活使用【亲测】
    经典SQL 语句
    事务的四种隔离级别 [转载]
    HTML 特殊符号编码对照表
    github本地文件Push到仓库
  • 原文地址:https://www.cnblogs.com/quixon/p/4684898.html
Copyright © 2011-2022 走看看