stat
  (PHP 4, PHP 5, PHP 7, PHP 8)
stat — Sammelt Informationen über eine Datei
  
 
  Beschreibung
  
  
  
   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.
  
  
   *** Unter Windows, von PHP 7.4.0 an, ist dies die Seriennummer des
   Laufwerks, das die Datei enhält, welches eine 64-bit Ganzzahl
   ohne Vorzeichen ist, so dass auf 32-bit-Systemen ein
   Überlauf erfolgen kann. Zuvor war es die numerische Darstellung des
   Laufwerksbuchstabens (z. B. 2 für C:)
   für stat(), und 0 für
   lstat().
  
  
   **** Unter Windows, von PHP 7.4.0 an, ist dies die mit der Datei assozierte
   Kennung, welche eine 64-bit Ganzzahl ohne Vorzeichen
   ist, so dass ein Überlauf erfolgen kann. Zuvor war es immer
   0.
  
  
   ***** Unter Windows wird das Schreibberechtigungsbit entsprechend dem
   schreibgeschützten Dateiattribut gesetzt, und derselbe Wert wird für alle
   Benutzer, Gruppen und Besitzer gemeldet. Die ACL wird im Gegensatz zu
   is_writable() nicht berücksichtigt.
  
  
   Der Wert von mode enthält Informationen, die von
   mehreren Funktionen gelesen werden. Wenn als Oktalzahl dargestellt und von
   rechts betrachtet, werden die ersten drei Ziffern von
   chmod() zurückgegeben. Die nächste Ziffer wird von PHP
   ignoriert. Die nächsten beiden Ziffern geben den Dateityp an:
   
    mode Dateitypen
    
     
      
       | modeals Oktalzahl | Bedeutung | 
     
     
      
       | 0140000 | socket | 
      
       | 0120000 | Verknüpfung | 
      
       | 0100000 | reguläre Datei | 
      
       | 0060000 | Block-Gerät | 
      
       | 0040000 | Verzeichnis | 
      
       | 0020000 | zeichenorientiertes Gerät | 
      
       | 0010000 | FIFO | 
     
    
   
   So könnte beispielsweise eine reguläre Datei 
0100644,
   und ein Verzeichnis 
0040755 sein.
  
  
   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 zwischengespeichert. Weitere Details sind bei
clearstatcache() zu finden.
  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() - Sammelt Informationen über eine Datei oder einen symbolischen Link
- fstat() - Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
- filemtime() - Liefert die Zeit der letzten Dateiänderung
- filegroup() - Liefert die Gruppenzugehörigkeit einer Datei
- SplFileInfo