<?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);
输出结果如下图所示: