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

PHP Filesystem stat() Function



The PHP Filesystem stat() function is used to return the information about a file. This function can gather the statistics of the file named by filename. If the filename is a symbolic link, statistics are from the file itself, not the symlink. The lstat() function is similar to stat() function, except it could instead be based on symlinks status.

Syntax

Below is the syntax of the PHP Filesystem stat() function −

array stat ( string $filename )

Parameters

Below is the only required parameter of the stat() function −

Sr.No Parameter & Description
1

$filename(Required)

It is the file to get the information about.

Return Value

The function stat() returns an array with details about the file on success, and in case of error it returns FALSE.

Elements of Array

Here are the main elements of the array −

Index Field Description
[0] dev Device number
[1] ino Inode number
[2] mode File mode (protection)
[3] nlink Number of links
[4] uid User ID of the owner
[5] gid Group ID of the owner
[6] rdev Device type (if inode device)
[7] size Size of the file in bytes
[8] atime Time of last access
[9] mtime Time of last modification
[10] ctime Time of last change
[11] blksize Block size for filesystem I/O
[12] blocks Number of 512B blocks allocated

PHP Version

The stat() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7 and PHP 8.

Example

Here is the basic example to see how the PHP Filesystem stat() function is used to get the file information.

<?php
   // Get file stat 
   $stat = stat("/PhpProject/sample.txt");  

   // Print file access time, this is the same as calling fileatime()  
   echo "Acces time: " .$stat["atime"];    

   //Print file modification time, this is the same as calling filemtime()
   echo "\nModification time: " .$stat["mtime"];  
?>

Output

Here is the outcome of the following code −

Acces time: 1590217956
Modification time: 1591617832
Device number: 1245376677

Example

Here is the another example to show the usage of stat() function to handle the errors while using this function.

<?php
   $stat = stat("/PhpProject/sample.txt");
   
   if(!$stat) {
      echo "stat() call failed...";
   } else {
      $atime = $stat["atime"] + 604800;
   }
   if(!touch("/PhpProject1/sampl2.txt", time(), $atime)) {
      echo "failed to touch file...";
   } else {
      echo "touch() returned success...";
   }
?> 

Output

This will produce the following result −

touch() returned success...

Example

Here is one more example to if the file provided exists of not and if it exists then get the information using the stat() function.

<?php
   $filename = "/PhpProjects/myfile.txt";

   if (file_exists($filename)) {
      $fileinfo = stat($filename);
      echo "File exists!\n";
      echo "File size: " . $fileinfo['size'] . " bytes\n";
      echo "Last modified: " . date('Y-m-d H:i:s', $fileinfo['mtime']) . "\n";
   } else {
      echo "File does not exist.
"; } ?>

Output

This will generate the below output −

File exists!
File size: 74 bytes
Last modified: 2024-06-25 09:08:39

Example

Here is one more example to use stat() function for getting the information of the like like file size, last modification date, and permissions.

<?php
   $filename = "/PhpProjects/myfile.txt";

   // Get file status
   $fileinfo = stat($filename);

   // Display file size in bytes
   echo "File size: " . $fileinfo['size'] . " bytes\n";

   // Display last modified timestamp
   echo "Last modified: " . date('Y-m-d H:i:s', $fileinfo['mtime']) . "\n";

   // Display file permissions
   echo "Permissions: " . decoct($fileinfo['mode'] & 0777) . "\n";
?> 

Output

This will lead to the following output −

File size: 74 bytes
Last modified: 2024-06-25 09:08:39
Permissions: 644

Summary

The stat() method is a built-in function to get the information about the file given as an array. It is very helpful to get different attributes of a file like permissions, size, modification time, and its type.

php_function_reference.htm
Advertisements