fseek
Seeks on a file pointer
Description
int fseek(resource $stream, int $offset, int $whence = SEEK_SET)
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.