(PHP 4, PHP 5, PHP 7)
stat — Sammelt Informationen über eine Datei
$filename
)
Sammelt Statistiken über die per filename
angegebene Datei. Falls filename
ein symbolischer
Link ist, beziehen sich die Statistiken auf die Datei selbst, nicht auf
den symbolischen Link.
lstat() ist identisch zu stat(), mit dem Unterschied, dass es sich auf den Status des symbolischen Links bezieht.
filename
Pfad zur Datei.
Numerisch | Assoziativ | Beschreibung |
---|---|---|
0 | dev | Gerätenummer |
1 | ino | Inode-Nummer * |
2 | mode | Inode-Schutzmodus |
3 | nlink | Anzahl der Links |
4 | uid | userid des Besitzers * |
5 | gid | groupid des Besitzers * |
6 | rdev | Gerätetyp, falls Inode-Gerät |
7 | size | Größe in Bytes |
8 | atime | Zeitpunkt des letzten Zugriffs (Unix-Timestamp) |
9 | mtime | Zeitpunkt der letzten Änderung (Unix-Timestamp) |
10 | ctime | Zeitpunkt der letzten Inode-Änderung (Unix-Timestamp) |
11 | blksize | Blockgröße des Dateisystem-I/O ** |
12 | blocks | Anzahl der zugewiesenen 512-Byte-Blöcke ** |
** Nur gültig unter Systemen, die den st_blksize-Typ unterstützen - andere Systeme (z.B. Windows) geben -1 zurück.
Im Fehlerfall gibt stat() FALSE
zurück.
Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.
Im Fehlerfall wird eine E_WARNING
geworfen.
Beispiel #1 stat()-Beispiel
<?php
/* Hole Datei-Statistik */
$stat = stat('C:\php\php.exe');
/*
* Gebe den Zugriffszeitpunkt der Datei aus; dies entspricht dem
* Aufruf von fileatime()
*/
echo 'Zugriffszeitpunkt: ' . $stat['atime'];
/*
* Gebe den Änderungszeitpunkt der Datei aus; dies entspricht dem
* Aufruf von filemtime()
*/
echo 'Änderungszeitpunkt: ' . $stat['mtime'];
/* Gebe die Gerätenummer aus */
echo 'Gerätenummer: ' . $stat['dev'];
?>
Beispiel #2 Nutzung von stat()-Informationen zusammen mit touch()
<?php
/* Hole Datei-Statistik */
$stat = stat('C:\php\php.exe');
/* Hat das Holen der Statistik-Informationen geklappt? */
if (!$stat) {
echo 'stat()-Aufruf schlug fehl ...';
} else {
/*
* Wir wollen den Zugriffszeitpunkt auf eine Woche nach dem aktuellen
* Zugriffszeitpunkt setzen.
*/
$atime = $stat['atime'] + 604800;
/* Ändere die Datei */
if (!touch('eine_datei.txt', time(), $atime)) {
echo 'Ändern der Datei schlug fehl ...';
} else {
echo 'touch()-Befehl war erfolgreich ...';
}
}
?>
Hinweis:
Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.
Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().
Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.