stat
(PHP 4, PHP 5, PHP 7)
stat — Gives information about a file
Descrierea
stat
( string $filename
) : array|false
lstat() is identical to stat()
except it would instead be based off the symlinks status.
Parametri
-
filename
-
Path to the file.
Valorile întoarse
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
for
lstat().
**** 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 by
chmod(). 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
.
Notă:
Deoarece tipul întreg al PHP este cu semn și multe platforme utilizează întregi
de 32 de biți, unele funcții ale sistemului de fișiere pot întoarce rezultate
neașteptate pentru fișiere ce depășesc 2GB.
Erori/Excepții
Upon failure, an E_WARNING
is emitted.
Exemple
Example #1 stat() example
<?php
/* Get file stat */
$stat = stat('C:\php\php.exe');
/*
* Print file access time, this is the same
* as calling fileatime()
*/
echo 'Access time: ' . $stat['atime'];
/*
* Print file modification time, this is the
* same as calling filemtime()
*/
echo 'Modification time: ' . $stat['mtime'];
/* Print the device number */
echo 'Device number: ' . $stat['dev'];
?>
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 {
/*
* We want the access time to be 1 week
* after the current access time.
*/
$atime = $stat['atime'] + 604800;
/* Touch the file */
if (!touch('some_file.txt', time(), $atime)) {
echo 'Failed to touch file...';
} else {
echo 'touch() returned success...';
}
}
?>
Note
Notă:
Observați că rezoluția timpului poate să difere de la un sistem de
fișiere la altul.
Notă:
Rezultatele acestei funcții sunt stocate în cache. Accesați
clearstatcache() pentru mai multe detalii.
Sfat
Începând cu PHP 5.0.0 această funcție poate fi utilizată de asemenea
cu unele învelișuri URL. Referiți-vă la
Supported Protocols and Wrappers pentru a determina care învelișuri susțin familia de
funcționalitate stat().
A se vedea și
- lstat() - Gives information about a file or symbolic link
- fstat() - Gets information about a file using an open file pointer
- filemtime() - Gets file modification time
- filegroup() - Gets file group