stat
Sammelt Informationen über eine Datei
Beschreibung
array stat
( string $filename
)
lstat ist identisch zu stat,
mit dem Unterschied, dass es sich auf den Status des symbolischen Links
bezieht.
Parameter-Liste
-
filename
-
Pfad zur Datei.
Rückgabewerte
stat- und
fstat-Ergebnisformat
| 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 ** |
* Unter Windows wird dies immer 0 sein.
** 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.
Fehler/Exceptions
Im Fehlerfall wird eine E_WARNING geworfen.
Beispiele
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 ...';
}
}
?>
Anmerkungen
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.
TippSeit 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.
Siehe auch
- lstat
- fstat
- filemtime
- filegroup