(PHP 4, PHP 5, PHP 7, PHP 8)
fseek — 在文件指针中定位
在与 stream
关联的文件中设定文件指针位置。新位置从文件头开始以字节数度量,是以
whence
指定的位置加上 offset
。
一般来说,允许定位超过文件末尾的位置;如果随后写入数据,则从文件末尾和定位位置之间已读取的任何未写入区域将产生值为 0 的字节。但是,某些 stream 可能不支持此行为,尤其是当它们具有底层固定大小的存储时。
成功返回 0
;否则返回 -1
。
此函数是为了模仿 C 语言中同名函数而创建的。请注意返回值,因为它们与 PHP 中的期望值不同。
示例 #1 fseek() 示例
<?php
$fp = fopen('somefile.txt', 'r');
// read some data
$data = fgets($fp, 4096);
// move back to the beginning of the file
// same as rewind($fp);
fseek($fp, 0);
?>
注意:
如果使用附加模试(
a
或a+
),任何写入文件数据都会被附加上去,而文件的位置将会被忽略,调用 fseek() 的结果尚未定义。
注意:
并非所有 stream 都支持定位。对于不支持定位的 stream,从当前位置向前定位是通过读取和丢弃数据来实现的;其他形式的定位将会失败。