fseek
(PHP 4, PHP 5, PHP 7, PHP 8)
fseek — Seeks on a file pointer
Description
$stream
, int $offset
, int $whence
= SEEK_SET
): int
Sets the file position indicator for the file referenced by
stream
. The new position, measured in bytes
from the beginning of the file, is obtained by adding
offset
to the position specified by
whence
.
In general, it is allowed to seek past the end-of-file; if data is then written, reads in any unwritten region between the end-of-file and the sought position will yield bytes with value 0. However, certain streams may not support this behavior, especially when they have an underlying fixed size storage.
Parameters
-
stream
-
A file system pointer resource that is typically created using fopen().
-
offset
-
The offset.
To move to a position before the end-of-file, you need to pass a negative value in
offset
and setwhence
toSEEK_END
. -
whence
-
whence
values are:SEEK_SET
- Set position equal tooffset
bytes.SEEK_CUR
- Set position to current location plusoffset
.SEEK_END
- Set position to end-of-file plusoffset
.
Return Values
Upon success, returns 0; otherwise, returns -1.
Examples
Example #1 fseek() example
<?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);
?>
Notes
Note:
If you have opened the file in append (
a
ora+
) mode, any data you write to the file will always be appended, regardless of the file position, and the result of calling fseek() will be undefined.
Note:
Not all streams support seeking. For those that do not support seeking, forward seeking from the current position is accomplished by reading and discarding data; other forms of seeking will fail.