PHP Filesystem ftell() Function
The PHP Filesystem ftell() function is used to return the current position in an open file which means its offset into the file stream. It can return the current file pointer position on success or false on failure.
Syntax
Below is the syntax of the PHP Filesystem ftell() function −
int ftell ( resource $handle )
Parameters
The parameters are needed to use the ftell() function are mentioned below −
| Sr.No | Parameter & Description |
|---|---|
| 1 |
handle(Required) The file pointer resource that points to an open file. |
Return Value
It returns an integer with the current position of the file pointer upon success or FALSE on failure.
PHP Version
The ftell() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7, PHP 8.
Example
This is a basic example which shows how we can use the PHP Filesystem ftell() function. So it opens a file to read and then prints the current position of the file pointer.
<?php
// Open the file using file path
$file = fopen("/Path/To/The/File", "r");
// print current position
echo ftell($file);
?>
Output
Here is the output of the above example −
0
Example
This PHP code modifies the reading location inside a file after reading it with the help of the ftell() function.
<?php
$file = fopen("/PhpProject/sample.txt", "r");
// print current position
echo ftell($file);
// change current position
fseek($file, "10");
// print current position again
echo "\n" . ftell($file);
fclose($file);
?>
Output
Following is the output −
0 10
Example
This PHP code creates a new file, reads one line from it, prints the current location of the file pointer, then closes it.
<?php
// opens a file and read data
$file = fopen("/PhpProject/sample.txt", "r");
$data = fgets($file, 7);
echo ftell($file);
fclose($file);
?>
Output
The above code produce the following result −
6
Example
This PHP code reads multiple lines from the given file and uses the ftell() function to print the file pointer's position after each line is read.
<?php
// Opens a file in read mode
$file = fopen("/PhpProject/sample.txt", "r");
if ($file) {
while (!feof($file)) {
// Read a line from the file
$line = fgets($file);
// Display the current position of the file pointer
echo "Position after reading line: " . ftell($file) . "\n";
}
fclose($file);
} else {
echo "Unable to open the file.";
}
?>
Output
This will produce the following result −
Position after reading line: 14
Example
In this PHP code we will use fseek() to move the file pointer to the end of the file and ftell() function to display the file size.
<?php
// Opens a file in read mode
$file = fopen("/PhpProject/sample.txt", "r");
if ($file) {
// Move the file pointer to the end of the file
fseek($file, 0, SEEK_END);
// Display the position of the file pointer (file size)
echo "File size: " . ftell($file) . "bytes";
// Close the file
fclose($file);
} else {
echo "Unable to open the file.";
}
?>
Output
This will generate the below output −
File size: 104 bytes
Note
As PHP's integer type is signed and many platforms use 32-bit integers, multiple filesystem methods can produce unexpected results for files larger than 2GB.
Summary
Use PHP's ftell() function to find the current location of the file pointer in an open file. This function is very helpful when you need to track how much of the file has been read or perform operations at certain areas inside the file.