PHP的feof,fseek函数

本文详细介绍了使用fseek、feof和fgets等函数进行文件指针定位、检测文件结束及读取文件内容的方法。通过示例代码,展示了如何利用这些函数实现文件的高效读取,特别是针对大型日志文件的实时读取和处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

feof
在文件指针中定位

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

offset
偏移量。

要移动到文件尾之前的位置,需要给 offset 传递一个负值,并设置 whence 为 SEEK_END。

whence
whence values are:

SEEK_SET - 设定位置等于 offset 字节。
SEEK_CUR - 设定位置为当前位置加上 offset。
SEEK_END - 设定位置为文件尾加上 offset。
返回值
成功则返回 0;否则返回 -1。注意移动到 EOF 之后的位置不算错误。

fseek

bool feof ( resource $handle )
测试文件指针是否到了文件结束的位。

返回值
如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE。


fgets
 从文件指针中读取一行

string fgets ( resource $handle [, int $length ] )

length
从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

返回值
从指针 handle 指向的文件中读取了 length - 1 字节后返回字符串。 如果文件指针中没有更多的数据了则返回 FALSE。

错误发生时返回 FALSE。

使用session 储存文件的字节数 filesize($filename) ,根据判断进行字节数对比,取得最新的字节数值.

$offset = $session['filesize'];


$handle = fopen($file_path, "rb");
fseek($handle, $offset);
//指针的定位就在上次最后字节处,方便读取类似聊天日志文件的实时添加,显示的

while (!feof($handle)) {
      $content = fgets($handle);  //从文件指针中读取一行
      //处理获取的内容

}

fclose($handle);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值