因为是大文件,所以只有能指针去读取某几行,不能直接将整个文件全部读进来。
要有三个变量,指定的文件,从X行到Y行间的字符。
求用PHP的fseek、fgets获取指定行的函数。
答案:3 悬赏:20 手机版
解决时间 2021-03-21 03:16
- 提问者网友:萌卜娃娃
- 2021-03-20 19:44
最佳答案
- 五星知识达人网友:蓝房子
- 2021-03-20 20:31
<?php
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","<br/>",$text);
//echo $text;
return $text;
}
echo line_content("aaa.txt",1300,1400);
?>
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","<br/>",$text);
//echo $text;
return $text;
}
echo line_content("aaa.txt",1300,1400);
?>
全部回答
- 1楼网友:执傲
- 2021-03-20 22:17
真不厚道,给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楼网友:封刀令
- 2021-03-20 20:50
真不厚道,给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(!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯