求用PHP的fseek、fgets获取指定行的函数。

2024-12-15 21:29:06
推荐回答(2个)
回答1:

真不厚道,给0分,怪不得没有人回答。
采纳给加分吧。
===========
function readBigFileLines($filename, $startLine = 1,$endLine=50) {

$content = '';
if($endLine < $startLine) return 'error:end line error';
$count = $endLine - $startLine;
$fp = fopen($filename,'r');//读模式打开文件
if(!$fp) return 'error:can not read file';
for ($i=1;$i<$startLine;$i++) {
if(!feof($fp)) fgets($fp);//跳过前$startLine行
}
for($i;$i<=$endLine;$i++){
if(!feof($fp)) $content .= fgets($fp);//读取文件行内容
}
fclose($fp);
return $content;

}
function createFile($fileName,$lines = 100){
$fp = fopen($fileName,'w+');
if(!$fp) return 'error:can not write file';
for($i=0;$i<$lines;$i++){
$str = rand(1,1000000);
fwrite($fp,$str."\r\n");
}
fclose($fp);
}
$filename ='demo.log';//需要读取的文件
$start = 20;//读取开始行数
$end = 40;//读取结束行数
//createFile($filename,1000);
$data = readBigFileLines($filename,5,10);
echo $data;

回答2:


function line_content($filename,$startline,$endline){

$fp=fopen($filename,"r");

for($i=1;$i<$startline;$i++){

fgets($fp);

}

for($i=$startline;$i<=$endline;$i++){

$text.=fgets($fp);

}

$text=str_replace("\n","
",$text);

//echo $text;

return $text;

}

echo line_content("aaa.txt",1300,1400);

?>