php文件操作之逐行读取文件
有一个名为“test.txt”的文本文件,里面的内容为:
我们如何逐行读取文件中的内容并输出?简单,今天我们就来给大家介绍两种方法。
方法1:使用fgets()函数
我们来看看代码示例:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('./test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgets($handle,1024))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
输出结果:
关键函数分析:
fgets()函数用于从打开的文件中读取一行数据,接受一个必需参数$file
(被打开的文件)和一个可选参数$length
(要读取的字节数);如果省略了 $length
参数,则默认读取 1k(即1024字节)长度。
fgets()函数在遇到换行符
、EOF
(读到文件末尾)或者到达指定长度 $length-1
后停止(返回字符串长度最大值为 $length-1
个字节)。
如果我们不知道文件中有多少数据,可以使用filesize()
函数来获取,该函数可以返回指定文件的大小(字节数)。
所以上面的代码示例可以修改一下:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $url = './test.txt'; $handle = fopen($url, 'r'); //打开文件 $size= filesize($url); //计算文件大小 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgets($handle,$size))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
输出结果和上面是一样的。
方法2:使用fgetss()函数
我们来看看代码示例:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('./test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgetss($handle,1024))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
输出结果:
关键函数分析:
fgetss()函数和fgets()函数相似,都可以从打开的文件中读取一行数据,不同的是fgetss()函数会过滤掉数据中的 HTML 和 PHP 标签。
fgetss() 函数接受一个必需参数$file
、两个可选参数$length
和$tags
。参数$file和$length在fgets()函数中介绍过来,大家可以去上文了解。而参数$tags
是用来指定哪些标记不被去掉,我们通过一个例子来具体了解一下:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $handle = fopen('./test.txt', 'r'); //打开文件 if (!$handle) { //判断文件是否打开成功 echo '文件打开失败!'; } while (false !== ($char = fgetss($handle,1024,"<h1>,<em>"))) { //循环读取文件内容 echo $char."<br>"; } fclose($handle); //关闭文件 ?>
在上面的代码中,我们设置参数$tags的值为“<h1>,<em>
”,也就是不过滤<h1>
和<em>
标签,因此输出结果:
注意:在操作完文件后,要记得使用fclose()函数来关闭文件!
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →PHP文件基础操作
推荐:《PHP面试题大汇总(收藏)》《php视频教程》
-
nrg是什么格式文件?nrg文件用什么打开? 时间:2025-09-10
-
JavaScript中removeChild删除所有子节点方法详解(附代码) 时间:2025-09-10
-
Java运行时异常(RuntimeException)的原因及解决办法 时间:2025-09-10
-
PHP中随机数生成的方法有哪些(生成随机数的函数) 时间:2025-09-10
-
Java ExceptionInInitializerError异常的原因及对应解决办法 时间:2025-09-10
-
Linux常用命令awk的用法 grep、awk、sed三者的区别 时间:2025-09-09
今日更新
-
童年的梗是什么梗?揭秘80、90后集体回忆杀,一秒带你重回快乐时光!
阅读:18
-
童年梗是什么梗?揭秘网络怀旧热潮背后原因,带你重温经典回忆杀!
阅读:18
-
童年时候的梗是什么梗?揭秘那些年让你笑到肚疼的经典回忆!
阅读:18
-
童七七是什么梗揭秘:全网爆火的可爱暗号,00后都在用的社交新潮流!
阅读:18
-
童真是什么梗?揭秘网络热词背后的纯真与幽默,一秒get快乐源泉!
阅读:18
-
瞳孔地震是什么梗?揭秘网络热词背后的爆笑瞬间!
阅读:18
-
统一六国的梗是什么梗?揭秘秦始皇爆笑网络热梗背后的真相!
阅读:18
-
捅西瓜梗是网络流行语,源自搞笑视频中夸张捅西瓜动作,暗指用极端方式解决问题,幽默又带讽刺意味。
阅读:18
-
怪兽八号手游核爆配队详解-适用所有主C
阅读:18
-
逆水寒手游十月版本前瞻-航母联动特色逆水杀曝光
阅读:18