首页 > 文章列表 > 获取PHP文件指针的读写位置

获取PHP文件指针的读写位置

PHP编程 后端开发 feof() ftell() fseek() rewind()
439 2024-03-27

这篇文章将为大家详细讲解有关PHP返回文件指针读/写的位置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

PHP 返回文件指针读/写的位置

php提供了几个函数来返回文件指针的当前读/写位置,这些函数包括:

  • ftell():返回文件指针的当前位置,以字节为单位。
  • fseek():将文件指针移到指定的位置。
  • rewind():将文件指针移到文件的开头。
  • feof():检查文件指针是否已到达文件末尾。

ftell()

ftell() 函数返回文件指针当前指向的位置,以字节为单位。它通常用于确定文件指针已读入或写入文件中的数据量。

$file = fopen("myFile.txt", "r");

// 将文件指针移到文件末尾
fseek($file, 0, SEEK_END);

// 获取文件大小
$fileSize = ftell($file);

echo "文件大小:" . $fileSize . " 字节";

fseek()

fseek() 函数将文件指针移动到指定的位置。它需要三个参数:

  • $file:要移动的文件指针。

  • $offset:要移动的偏移量,以字节为单位。

  • $whence:偏移量的参考点,可以是:

    • SEEK_SET:从文件的开头开始。
    • SEEK_CUR:从文件指针的当前位置开始。
    • SEEK_END:从文件的末尾开始。
$file = fopen("myFile.txt", "r");

// 将文件指针移动到文件的中间
fseek($file, 50, SEEK_SET);

// 读取文件指针当前位置处的数据
$data = fread($file, 10);

echo $data;

rewind()

rewind() 函数将文件指针移动到文件的开头。它通常在对文件进行重新处理或希望从头开始读取文件时使用。

$file = fopen("myFile.txt", "r");

// 读取文件前 100 字节的数据
$data1 = fread($file, 100);

// 将文件指针移动到文件的开头
rewind($file);

// 再次读取文件前 100 字节的数据
$data2 = fread($file, 100);

feof()

feof() 函数检查文件指针是否已到达文件末尾。它返回一个布尔值,true 表示已到达文件末尾,false 表示尚未到达。

$file = fopen("myFile.txt", "r");

while (!feof($file)) {
// 从文件读取一行数据
$line = fgets($file);

// 处理文件行
}