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

    得到结果:

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

  • 相关阅读:
    tomcat容器启动的启动过程(三)
    tomcat源码分析(二)启动过程
    tomcat源码分析(一)
    spring 整合redis
    redis win版安装
    java虚拟机存储区
    java代码块 静态、非静态
    Vulkan Tutorial 08 交换链
    Vulkan Tutorial 07 Window surface
    Vulkan Tutorial 06 逻辑设备与队列
  • 原文地址:https://www.cnblogs.com/quixon/p/4684898.html
Copyright © 2011-2022 走看看