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.