Gives information about a file (original) (raw)

stat

(PHP 4, PHP 5, PHP 7)

stat — Gives information about a file

Description

stat ( string $filename ) : array

lstat() is identical to stat() except it would instead be based off the symlinks status.

Parameters

filename

Path to the file.

Return Values

**stat() and fstat() result format

Numeric Associative Description
0 dev device number ***
1 ino inode number ****
2 mode inode protection mode
3 nlink number of links
4 uid userid of owner *
5 gid groupid of owner *
6 rdev device type, if inode device
7 size size in bytes
8 atime time of last access (Unix timestamp)
9 mtime time of last modification (Unix timestamp)
10 ctime time of last inode change (Unix timestamp)
11 blksize blocksize of filesystem IO **
12 blocks number of 512-byte blocks allocated **

* On Windows this will always be 0.

** Only valid on systems supporting the st_blksize type - other systems (e.g. Windows) return -1.

*** On Windows, as of PHP 7.4.0, this is the serial number of the volume that contains the file, which is a 64-bit unsigned integer, so may overflow. Previously, it was the numeric representation of the drive letter (e.g. 2 for C:) for stat(), and 0 forlstat().

**** On Windows, as of PHP 7.4.0, this is the identifier associated with the file, which is a 64-bit unsigned integer, so may overflow. Previously, it was always 0.

The value of mode contains information read by several functions. When written in octal, starting from the right, the first three digits are returned bychmod(). The next digit is ignored by PHP. The next two digits indicate the file type:

mode file types

mode in octal Meaning
0120000 link
0100000 regular file
0060000 block device
0040000 directory
0010000 fifo

So for example a regular file could be 0100644 and a directory could be**0040755**.

In case of error, stat() returns FALSE.

Note: Because PHP's integer type is signed and many platforms use 32bit integers, some filesystem functions may return unexpected results for files which are larger than 2GB.

Errors/Exceptions

Upon failure, an E_WARNING is emitted.

Changelog

Version Description
7.4.0 On Windows, the device number is now the serial number of the volume that contains the file, and the inode number is the identifier associated with the file.
7.4.0 The size, atime, mtime andctime statistics of symlinks are always those of the target. This was previously not the case for NTS builds on Windows.

Examples

Example #1 stat() example

`<?php
/* Get file stat /
$stat = stat('C:\php\php.exe');/

Example #2 Using stat() information together with touch()

`<?php
/* Get file stat /
$stat = stat('C:\php\php.exe');/
Did we failed to get stat information? /
if (!$stat) {
echo 'stat() call failed...';
} else {
/

Notes

Note:

Note that time resolution may differ from one file system to another.

Note: The results of this function are cached. See clearstatcache() for more details.

Tip

As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer toSupported Protocols and Wrappers to determine which wrappers supportstat() family of functionality.

See Also