PHP Dokumentation: Function stat
12. Januar 2010 von werner
stat
(PHP 4, PHP 5)
stat — Sammelt Informationen über eine Datei
Beschreibung
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.
Parameter-Liste
- filename
Pfad zur Datei.
Rückgabewerte
| Numerisch | Assoziativ (seit PHP 4.0.6) | 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.
Fehler/Exceptions
Im Fehlerfall wird eine E_WARNING geworfen.
Changelog
| Version | Beschreibung |
|---|---|
| 4.0.6 | Zusätzlich zur Rückgabe dieser Attribute in einem numerischen Array kann auf sie auch mit assoziativen Indizes zugriffen werden (wie in der obigen Tabelle beschrieben). |
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 vor 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 zeitlicheAuflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.
Hinweis: Die Ergebnisse dieser Funktionwerden gecached. Weitere Details erhalten Sie beiclearstatcache().
Seit PHP 5.0.0 kann dieseFunktion mit einigen URL-Wrappern benutzt werden. SchauenSie in der Liste unter List of Supported Protocols/Wrappers nach, welcher Wrapper dieFunktionalität von stat() unterstützt.
Siehe auch
- lstat() – Sammelt Informationen über eine Datei oder einen symbolischen Link
- fstat() – Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
- filemtime() – Liefert Datum und Uhrzeit der letzten Dateiänderung
- filegroup() – Liefert die Gruppenzugehörigkeit einer Datei