fseek
(PHP 4, PHP 5, PHP 7, PHP 8)
fseek — Seeks on a file pointer
Description
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,
a negative value in the offset must be passed and
the whence parameter must be set
to SEEK_END.
whence
-
whence values are:
SEEK_SET - Set position equal to offset bytes from the start of the file.
SEEK_CUR - Set position to current location plus offset bytes.
SEEK_END - Set position to end-of-file plus offset bytes.
Return Values
Upon success, returns 0;
otherwise, returns -1.
Warning
This function was created to imitate the C language function of the same
name. Please pay attention to the return values as they differ from what
one would expect in PHP.
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 or
a+) 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.
See Also
- ftell() - Returns the current position of the file read/write pointer
- rewind() - Rewind the position of a file pointer