当前位置:首页 » 编程语言 » php按行读取文件

php按行读取文件

发布时间: 2022-06-25 12:27:53

⑴ 通过php随机读取txt文件的某一行

PHP随机读取TXT文件的某一行,基本思路是这样的:获得总行数、产生随机数、获得随机行,例子代码如下:

<?php
$f='1.txt';//文件名
$a=file($f);//把文件的所有内容获取到数组里面
$n=count($a);//获得总行数
$rnd=rand(0,$n);//产生随机行号
$rnd_line=$a[$rnd];//获得随机行
echo"$rnd/$n:$rnd_line ";//显示结果
?>


以上程序在我的电脑上执行几次的结果如下:

E:TEMP文件exp>a.php
1/8:[00:05.33]你拿什么来爱我2

E:TEMP文件exp>a.php
3/8:acfp6o7ib----803sb7rmvz----1525175080=

E:TEMP文件exp>a.php
1/8:[00:05.33]你拿什么来爱我2

E:TEMP文件exp>a.php
1/8:[00:05.33]你拿什么来爱我2

E:TEMP文件exp>a.php
5/8:bxi2jw97----0vaf3bw17s----1525184793=

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


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

⑶ PHP如何从文本中提取指定行数内容

PHP如何从文本中提取指定行数内容?在php中,通过fopen()方法打开文件,在while中使用fgets()方法获取每行数据,每读到一行,就使用标识记录一次,通过累计记录数计算出文件的行数。下面介绍实现的过程。
方法/步骤分步阅读
1
/7
新建一个php文件,命名为handle.php,用于讲解PHP怎么获取文件的行数。
2
/7
新建一个文本文件,命名为test.txt,在里面输入四行数据,分别是aaa,bbb,ccc,ddd。
3
/7
在handle.php文件里,使用fopen方法以只读方式打开test.txt文件,代码如下:
4
/7
在handle.php文件里,创建一个初始变量i,用于保存文件内容的行数。
5
/7
通过while()语句,使用fgets方法从文件指针中读取一行,每读取一行,变量i自加一,直到到达文件末尾停止while的执行。
注:!feof($handle),函数检测是否已到达文件末尾。
6
/7
最后,使用echo输出文件的行数,并通过fclose关闭文件资源。代码如下:
7
/7
在浏览器执行handle.php文件,查看输出的行数,执行的结果为4行。
内容仅供参考并受版权保护

⑷ php读取逐行读取文件

换个1mb的文本它肯定有空格换行,具体操作如下代码:

$file = file("welcome.txt");
foreach($file as &$line) echo $line.'<br />';

这个更方便, file()直接把文本按行转换成数组
fgets如果没指定第二参数,将直接读取到缓存结束为止, 其实它不以换行来循环的,它的第二参数也是限制每次读取的字符个数而已。

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

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

⑹ 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怎么一行一行的读取字符串

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

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

  2. 以下是一个简单例子:

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


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

<?php
header("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>
<?php
fclose($f_open); //关闭文件
?>

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

<?php

function 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行

?>

热点内容
linux反编译jar 发布:2025-02-05 10:46:29 浏览:25
算法激励 发布:2025-02-05 10:45:48 浏览:304
java16进制字符串 发布:2025-02-05 10:38:13 浏览:643
创业团队配置有哪些 发布:2025-02-05 10:37:40 浏览:630
王者键盘怎么设置安卓 发布:2025-02-05 10:32:01 浏览:373
阿里云轻量服务器ip搭建 发布:2025-02-05 10:24:46 浏览:487
编程高精度 发布:2025-02-05 10:22:28 浏览:230
使命召唤如何配置爆炸狙 发布:2025-02-05 10:08:12 浏览:143
java访问共享目录 发布:2025-02-05 10:03:56 浏览:282
行车记录仪存储卡多大合适 发布:2025-02-05 09:35:21 浏览:112