As developers and system administrators, we rely on information about our programs and operating systems to find and fix errors in various applications.
It is therefore to have a few troubleshooting skills under your belt to ensure that you can gather and determine the problems in a system without rely on external tools.
PHP stat() Function
As stated, this function allows us to gather information about a file. The function syntax is as shown below:
stat(string $filename): array|false
The function accepts one parameter:
filename- this specifies the path to the target file.
The function will then return an array with various elements denoting the file information. The returned information is as demonstrated below:
|dev||0||Device number in which the file resides|
|ino||1||Inode number of the file|
|mode||2||File type and permissions|
|nlink||3||Number of hard links to the file|
|uid||4||User ID of the file owner|
|gid||5||Group ID of the file owner|
|rdev||6||Device type, if the file is a special file|
|size||7||Size of the file in bytes|
|atime||8||Time of last access|
|mtime||9||Time of last modification|
|ctime||10||Time of last status change|
|blksize||11||Block size used by the file system|
|blocks||12||Number of 512-byte blocks allocated to the file|
Example Function Usage
The following code snippet shows the usage of the
stat() function and the resulting output:
<?php $file_path = '/home/d3b1an/.bashrc'; // Use the stat() function to get file information $file_info = stat($file_path); // Display the file size echo "File size: " . $file_info['size'] . " bytes\n"; // Display the owner user ID and group ID echo "Owner user ID: " . $file_info['uid'] . "\n"; echo "Owner group ID: " . $file_info['gid'] . "\n"; // Display the file permissions echo "File permissions: " . decoct($file_info['mode'] & 0777) . "\n"; // Display the last access, modification, and status change times echo "Last access time: " . date('Y-m-d H:i:s', $file_info['atime']) . "\n"; echo "Last modification time: " . date('Y-m-d H:i:s', $file_info['mtime']) . "\n"; echo "Last status change time: " . date('Y-m-d H:i:s', $file_info['ctime']) . "\n"; ?>
The code above uses the
stat() function to gather the file details about the
We can run the code above:
$ php file_info.php
File size: 3526 bytes Owner user ID: 1000 Owner group ID: 1000 File permissions: 644 Last access time: 2023-04-23 23:56:28 Last modification time: 2023-04-23 23:56:24 Last status change time: 2023-04-23 23:56:24
In this tutorial, you discovered how you can monitor and gather information about a specific file within the filesystem using the
stat() function in PHP.