0
点赞
收藏
分享

微信扫一扫

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

<?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);

输出结果如下图所示:
fgets与stream_get_line获取文件行数效率比较_初始化


举报

相关推荐

0 条评论