fseek()

1. 定义

重新定位文件指针,定位值从$whence开始,单位为字节数,可以定位至文件末尾之后。 成功时返回0,失败返回-1。

注意:如果是使用附加模式(aa+模式)打开的文件句柄,使用该函数会返回未定义错误!

2. 语法

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

3. 参数说明

参数 可选性 数据类型 描述
$handle 必需 资源类型 文件句柄,通过fopen()函数打开的文件资源
$offset 必需 整型 偏移量,指针移动的字节数
$whence 可选 整型 偏移开始的位置

其中,$whence有三个可选值:

  • SEEK_SET:默认值,偏移从文件头开始
  • SEEK_CUR:偏移从当前文件指针开始
  • SEEK_END:偏移从文件末尾开始

4. 示例

<?php

// fseek()
// 重新定位文件指针,定位值从`$whence`开始,单位为字节数,可以定位至文件末尾之后

file_put_contents(__DIR__.'/test.txt', "--------------------------------------\n-----------------------------------------");

echo "\n================原始数据:===================\n";
echo file_get_contents(__DIR__.'/test.txt');
/* 输出:
================原始数据:===================
--------------------------------------
-----------------------------------------
*/

$handle = fopen(__DIR__.'/test.txt', 'r+');
fseek($handle, 20);// 偏移20字节

echo "\n================偏移 20 字节后的数据:===================\n";
fpassthru($handle);
/* 输出:
================偏移 20 字节后的数据:===================
------------------
-----------------------------------------
*/

fclose($handle);

5. 延展阅读

  • ftell():返回当前文件句柄的指针位置
  • rewind():该函数将已打开的文件句柄指针重置至文件头