`
收藏列表
标题 标签 来源
php读取大文件 PHP 读取大文件
<?
/**
* PHP 读取大文件 测试文件大于1G的文本文件
*
* @copyright(c) 2010 by 高成. All rights reserved
* @author 高成
*
*/
/**
* 文件读取
*
* @param String $filename 文件地址
* @param Int $count 读取得行数
* @param String $sep 每行的分隔标记
* @return String 返回结果
*/
function readBigFile($filename, $count = 20, $tag = '\r\n') {
    $content = '';//最终内容
    $_current = '';//当前读取内容寄存
    $step= 1;//每次走多少字符
    $tagLen = strlen($tag);
    $start = 0;//起始位置
    $i = 0;//计数器
    $handle = fopen($filename,'r+');//读写模式打开文件,指针指向文件头
    while($i < $count && !feof($handle)) {    //文件没有到结尾和小鱼需要读取得行数时
        fseek($handle, $start, SEEK_SET);//指针设置在文件开头
        $_current = fread($handle,$step);//读取文件
        $content .= $_current;//组合字符串
        $start += $step;//依据步长向前移动
        //依据分隔符的长度截取字符串最后免得几个字符
        $substrTag = substr($content, -$tagLen);
        if ($substrTag == $tag) {    //判断是否为判断是否是换行或其他分隔符
            $i++;
        }
    }
    //关闭文件
    fclose($handle);
    //返回结果
    return $content;
}
$filename = 'E:/2010log.log';//需要读取的文件
$tag = '\r\n';//行分隔符 注意这里必须用双引号
$count = 20;//读取行数
$data = readBigFile($filename,$count,$tag);
echo $data;
?>
Global site tag (gtag.js) - Google Analytics