fgets与stream_get_line获取文件行数效率比较

来源:互联网 发布:国动网络董事长卢杰 编辑:程序博客网 时间:2024/06/06 01:26
<?php#stream_get_line获取行数:$file_path = 'test.txt'; //文件路径echo '该文件大小为: ' . filesize($file_path) / (1024 * 1024) . ' 兆 ; ' . PHP_EOL;$line = $lines = 0; //初始化行数//打开文件$start = 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 . PHP_EOL;$end = microtime(true);$delta1 = $end - $start;echo $delta1 . PHP_EOL;#fgets获取行数:$start = microtime(true);$fp = fopen($file_path, 'r') or die("open file failure!");if ($fp) {//获取文件的一行内容,注意:需要php5才支持该函数;    while (fgets($fp, 8192)) {        $lines++;    }    fclose($fp); //关闭文件}echo $lines . PHP_EOL;$end = microtime(true);$delta2 = $end - $start;echo $delta2 . PHP_EOL;$delta = $delta1 - $delta2;print 'stream_get_line is ' . ($delta > 0 ? 'faster' : 'lower') . ' than fgets ' . abs($delta);

输出结果如下图所示:
右键在新窗口中打开可以看大图

0 0
原创粉丝点击