PHP | fseek( ) Function (original) (raw)
Last Updated : 13 Jun, 2018
The fseek() function in PHP is an inbuilt function which is used to seek in an open file. It moves the file pointer from its current position to a new position, forward or backward specified by the number of bytes. The file and the offset are sent as parameters to the fseek() function and it returns 0 on success, or -1 on failure.
Syntax:
int fseek ( file,file, file,offset, $whence)
Parameters: The fseek() function in PHP accepts three parameters as described below.
- $file: It is a mandatory parameter which specifies the file.
- $offset: It is a mandatory parameter which specifies the new position of the pointer. It is measured in bytes from the beginning of the file.
- $whence: It is an optional parameter which can have the following possible values-
- SEEK_SET: It sets position equal to offset.
- SEEK_CUR: It sets position to current location plus offset.
- SEEK_END: It sets position to EOF plus offset. To move to a position before EOF, the offset must be a negative value.
Return Value: It returns 0 on success, or -1 on failure.
Exceptions:
- Seeking past EOF(end of file) generates an error.
- If a file is open in append (a or a+) mode, then any data written to the file will always be appended, regardless of the file position, and the result of calling fseek() will be undefined.
- 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.
Below programs illustrate the fseek() function in PHP:
Program 1: In the below program the file named gfg.txt contains the following content:
Geeksforgeeks is a portal for geeks!
<?php
$myfile
=
fopen
(
"gfg.txt"
,
"w"
);
fgets
(
$myfile
);
echo
fseek
(
$myfile
, 0);
fclose(
$myfile
);
?>
Output:
0
Program 2: In the below program the file named gfg.txt contains the following content:
Geeksforgeeks is a portal for geeks!
<?php
$myfile
=
fopen
(
"gfg.txt"
,
"w"
);
fgets
(
$myfile
);
fseek
(fp, 0, SEEK_END);
fclose(
$myfile
);
?>
Output:
36
Reference: http://php.net/manual/en/function.fseek.php