php按行读取文件内容|php读取逐行读取文件

php按行读取文件内容|php读取逐行读取文件的第1张示图

⑴ php逐行读取文件,逐行修改文件,删除指定行

修改和删除指定行,我们一般用file将文件内容读取到数组中,根据数字索引比较容易修改,但是你要求用文件指针,这个比较麻烦,不管你用的是filesystem的函数还是spl类函数,都不可避免一个问题,对一个文件流操作,最多替换流中间的某一段内容,不可能实现插入,又不是c语言的链表,

//修改第二行内容$f=fopen('test.txt','r+');$i=1;while(!feof($f)){if($i==2){fseek($f,0,SEEK_CUR);fwrite($f,'aad');//这里的修改是替换形式,如果修改后这一行的长度比原来短,那么可以用空格填充到原来长度,这样实现修改,而且不影响后面的内容,但是修改后的比原来长就麻烦了,break;}fgets($f);$i++;}fclose($f);//删除行同修改行一样,只不过是将原来行替换为同等长度的空格串$f=fopen('test.txt','r+');$j=1;while(!feof($f)){if($j==2){$row=fgets($f);$len=strlen($row);echoftell($f)-$len."<br>";fseek($f,ftell($f)-$len);fwrite($f,str_pad('',$len,''));break;}fgets($f);$j++;}fclose($f);

⑵ php读取txt文件指定行的内容并显示

<?phpfunction getFileRows($filename,$start,$num=0){ $rowsdata = array(); $lines = file( $filename ); $start = $start -1; $num = $num == 0 ? count($lines)-$start : $num; for($i=0;$i<$num; $i++) { $k = $start + $i; $rowsdata[] = $lines[$k]; } return $rowsdata;}print_r(getFileRows('1.txt',3,1)); //第三行print_r(getFileRows('1.txt',5,1)); //第5行print_r(getFileRows('1.txt',7,1)); //第7行?>

⑶ php读取逐行读取文件

换个1mb的文本它肯定有空格换行,具体操作如下代码:$file = file("welcome.txt");foreach($file as &$line) echo $line.'<br />';这个更方便, file()直接把文本按行回转换成数组答fgets如果没指定第二参数,将直接读取到缓存结束为止, 其实它不以换行来循环的,它的第二参数也是限制每次读取的字符个数而已。

⑷ php读取txt文件指定行的内容并显示

<?php$handle = @fopen("1.txt", "r");$str="";if ($handle) { for($i=0;$i++;$i<3){ $buffer = fgets($handle, 4096); if(strpos($buffer,"aaaa")!==false){ $str.= $buffer; }elseif(strpos($buffer,"bbbb")!==false){ $str.= "[".$buffer."]"; }elseif(strpos($buffer,"cccc")!==false){ $str.= "(".$buffer.")"; } } fclose($handle);}echo $str;?>

⑸ php 如何读取指定行数据

function get_file_line( $file_name, $line ){ $n = 0; $handle = fopen($file_name,'r'); if ($handle) { while (!feof($handle)) { ++$n; $out = fgets($handle, 4096); if($line==$n) break; } fclose($handle); } if( $line==$n) return $out; return false;}暂时没想到什么好办法或找到对应函数,抛砖引玉,希望见到更好的解决方案

⑹ php怎么一行一行的读取字符串

php fgets将txt文件内容一行一行的读出

说明string fgets ( int $handle [, int $length ] )从 handle 指向的文件中读取一行并返回长度最多为 length – 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length – 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。 出错时返回 FALSE。 通常的缺陷: 习惯了 C 语言中 fgets() 语法的人应该注意到 EOF 是怎样被返回的。 文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。

以下是一个简单例子:

<?php[email protected]("/tmp/inputfile.txt","r");if($handle){while(!feof($handle)){$buffer=fgets($handle,4096);echo$buffer;}fclose($handle);}?>

⑺ php逐行读取txt文件内容,并把内容放到输入框里,一行内容对应一个输入框

<?phpheader("Content-type:text/html;charset=utf-8"); $f_open = fopen('aaa.txt','w+'); //打开文件if(isset($_POST['submit'])){ //判断,如果点了提交按钮则执行以下代码fwrite($f_open,$_POST['txt']); //写入文件,内容为文本域传过来的值}?><!DOCTYPE html><html><head><title></title><style type="text/css">textarea{width: 300px;height: 20px;}</style></head><body><form method="post" action="a.php"><textarea name="txt"><?php$aaa = readfile('aaa.txt'); //读取aaa.txt的内容?></textarea><input type="submit" name="submit"></form></body></html><?phpfclose($f_open); //关闭文件?>

⑻ php如何获取txt文本指定行的指定数据

如果直接使用file_get_contents来读取文件,那么在文件很大的时候会很占内容,比如这个文件有1GB的时候。这个时候使用传统的文件操作方式就好的多,因为是查找嘛,逐行读取匹配应该也是可以的,下面是我的一个建议,不知道是否满足你的要求,可以看下://需要查找的内容$search='bcd';//打开文件$res=fopen('a.txt','r');while($line=fgets($res,1024)){//根据规则查找if(strpos($line,$search)===0){//根据既定规则取得需要的数据echosubstr($line,4,-1);//这里就是你想得到的break;}}//关闭文件fclose($res);

⑼ PHP里如何读取文件的指定一行

<?php$c=getLine('./a.txt',10);//读取a.txt文件第10行内容echo$c;/***获取指定行内容**@param$file文件路径*@param$line行数*@param$length指定行返回内容长度*/functiongetLine($file,$line,$length=4096){$returnTxt=null;//初始化返回$i=1;//行数[email protected]($file,"r");if($handle){while(!feof($handle)){$buffer=fgets($handle,$length);if($line==$i)$returnTxt=$buffer;$i++;}fclose($handle);}return$returnTxt;}

⑽ php怎么一行一行的读取文件

$myfile=fopen("web.txt","r");echofgets($myfile);//fgets为读取一行,行本质是段落fclose($myfile);

未经允许不得转载:山九号 » php按行读取文件内容|php读取逐行读取文件

赞 (0)