Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

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.

php_function_reference.htm
Advertisements