php.stat()
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.
In this tutorial, we will learn how we can use the stat()
method in PHP to gather information about a specific file within the current filesystem.
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:
Key | Numeric Value | Meaning |
---|---|---|
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 .bashrc
file.
We can run the code above:
$ php file_info.php
Resulting output:
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
Conclusion
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.