mirror of
https://github.com/php/doc-de.git
synced 2026-03-24 07:12:15 +01:00
360 lines
9.9 KiB
XML
360 lines
9.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: f80105b4fc1196bd8d5fecb98d686b580b1ff65d Maintainer: wiesemann Status: ready -->
|
|
<refentry xml:id="function.stat" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>stat</refname>
|
|
<refpurpose>Sammelt Informationen über eine Datei</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type class="union"><type>array</type><type>false</type></type><methodname>stat</methodname>
|
|
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Sammelt Statistiken über die per <parameter>filename</parameter> angegebene
|
|
Datei. Falls <parameter>filename</parameter> ein symbolischer Link ist,
|
|
beziehen sich die Statistiken auf die Datei selbst, nicht auf den
|
|
symbolischen Link. Unter Windows <abbrev>NTS</abbrev>-Builds vor PHP 7.4.0
|
|
bezogen sich in diesem Fall die <literal>size</literal>-,
|
|
<literal>atime</literal>-, <literal>mtime</literal>- und
|
|
<literal>ctime</literal>-Statistiken auf den symbolischen Link.
|
|
</para>
|
|
<para>
|
|
<function>lstat</function> ist identisch zu <function>stat</function>,
|
|
mit dem Unterschied, dass es sich auf den Status des symbolischen Links
|
|
bezieht.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>filename</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Pfad zur Datei.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
<table>
|
|
<title><function>stat</function>- und
|
|
<function>fstat</function>-Ergebnisformat</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Numerisch</entry>
|
|
<entry>Assoziativ</entry>
|
|
<entry>Beschreibung</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>0</entry>
|
|
<entry>dev</entry>
|
|
<entry>Gerätenummer ***</entry>
|
|
</row>
|
|
<row>
|
|
<entry>1</entry>
|
|
<entry>ino</entry>
|
|
<entry>Inode-Nummer ****</entry>
|
|
</row>
|
|
<row>
|
|
<entry>2</entry>
|
|
<entry>mode</entry>
|
|
<entry>Inode-Schutzmodus *****</entry>
|
|
</row>
|
|
<row>
|
|
<entry>3</entry>
|
|
<entry>nlink</entry>
|
|
<entry>Anzahl der Links</entry>
|
|
</row>
|
|
<row>
|
|
<entry>4</entry>
|
|
<entry>uid</entry>
|
|
<entry>userid des Besitzers *</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5</entry>
|
|
<entry>gid</entry>
|
|
<entry>groupid des Besitzers *</entry>
|
|
</row>
|
|
<row>
|
|
<entry>6</entry>
|
|
<entry>rdev</entry>
|
|
<entry>Gerätetyp, falls Inode-Gerät</entry>
|
|
</row>
|
|
<row>
|
|
<entry>7</entry>
|
|
<entry>size</entry>
|
|
<entry>Größe in Bytes</entry>
|
|
</row>
|
|
<row>
|
|
<entry>8</entry>
|
|
<entry>atime</entry>
|
|
<entry>Zeitpunkt des letzten Zugriffs (Unix-Timestamp)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>9</entry>
|
|
<entry>mtime</entry>
|
|
<entry>Zeitpunkt der letzten Änderung (Unix-Timestamp)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>10</entry>
|
|
<entry>ctime</entry>
|
|
<entry>Zeitpunkt der letzten Inode-Änderung (Unix-Timestamp)</entry>
|
|
</row>
|
|
<row>
|
|
<entry>11</entry>
|
|
<entry>blksize</entry>
|
|
<entry>Blockgröße des Dateisystem-I/O **</entry>
|
|
</row>
|
|
<row>
|
|
<entry>12</entry>
|
|
<entry>blocks</entry>
|
|
<entry>Anzahl der zugewiesenen 512-Byte-Blöcke **</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
<para>
|
|
* Unter Windows wird dies immer <literal>0</literal> sein.
|
|
</para>
|
|
<para>
|
|
** Nur gültig unter Systemen, die den st_blksize-Typ unterstützen - andere
|
|
Systeme (&zb; Windows) geben <literal>-1</literal> zurück.
|
|
</para>
|
|
<para>
|
|
*** Unter Windows, von PHP 7.4.0 an, ist dies die Seriennummer des
|
|
Laufwerks, das die Datei enhält, welches eine 64-bit Ganzzahl
|
|
<emphasis>ohne Vorzeichen</emphasis> ist, so dass auf 32-bit-Systemen ein
|
|
Überlauf erfolgen kann. Zuvor war es die numerische Darstellung des
|
|
Laufwerksbuchstabens (&zb; <literal>2</literal> für <literal>C:</literal>)
|
|
für <function>stat</function>, und <literal>0</literal> für
|
|
<function>lstat</function>.
|
|
</para>
|
|
<para>
|
|
**** Unter Windows, von PHP 7.4.0 an, ist dies die mit der Datei assozierte
|
|
Kennung, welche eine 64-bit Ganzzahl <emphasis>ohne Vorzeichen</emphasis>
|
|
ist, so dass ein Überlauf erfolgen kann. Zuvor war es immer
|
|
<literal>0</literal>.
|
|
</para>
|
|
<para>
|
|
***** 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
|
|
<function>is_writable</function> nicht berücksichtigt.
|
|
</para>
|
|
<para>
|
|
Der Wert von <literal>mode</literal> enthält Informationen, die von
|
|
mehreren Funktionen gelesen werden. Wenn als Oktalzahl dargestellt und von
|
|
rechts betrachtet, werden die ersten drei Ziffern von
|
|
<function>chmod</function> zurückgegeben. Die nächste Ziffer wird von PHP
|
|
ignoriert. Die nächsten beiden Ziffern geben den Dateityp an:
|
|
<table>
|
|
<title><literal>mode</literal> Dateitypen</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry><literal>mode</literal> als Oktalzahl</entry>
|
|
<entry>Bedeutung</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>0140000</literal></entry>
|
|
<entry>socket</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>0120000</literal></entry>
|
|
<entry>Verknüpfung</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>0100000</literal></entry>
|
|
<entry>reguläre Datei</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>0060000</literal></entry>
|
|
<entry>Block-Gerät</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>0040000</literal></entry>
|
|
<entry>Verzeichnis</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>0020000</literal></entry>
|
|
<entry>zeichenorientiertes Gerät</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>0010000</literal></entry>
|
|
<entry>FIFO</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
So könnte beispielsweise eine reguläre Datei <literal>0100644</literal>,
|
|
und ein Verzeichnis <literal>0040755</literal> sein.
|
|
</para>
|
|
<para>
|
|
Im Fehlerfall gibt <function>stat</function> &false; zurück.
|
|
</para>
|
|
&fs.file.32bit;
|
|
</refsect1>
|
|
|
|
<refsect1 role="errors">
|
|
&reftitle.errors;
|
|
<para>
|
|
Im Fehlerfall wird eine <constant>E_WARNING</constant> geworfen.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>7.4.0</entry>
|
|
<entry>
|
|
Unter Windows ist die Gerätenummer nun die Seriennummer des Laufwerks,
|
|
das die Datei enthält, und die Inode-Nummer ist die mit der Datei
|
|
assozierte Kennung.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>7.4.0</entry>
|
|
<entry>
|
|
Die <literal>size</literal>-, <literal>atime</literal>-,
|
|
<literal>mtime</literal>- und <literal>ctime</literal>-Statistiken
|
|
symbolischer Links sind nun immer die des Ziels. Dies war zuvor nicht
|
|
der Fall für <abbrev>NTS</abbrev>-Builds unter Windows.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title><function>stat</function>-Beispiel</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?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'];
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Nutzung von <function>stat</function>-Informationen zusammen mit <function>touch</function></title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?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 ...';
|
|
}
|
|
}
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
¬e.filesystem-time-res;
|
|
¬e.clearstatcache;
|
|
&tip.fopen-wrapper.stat;
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>lstat</function></member>
|
|
<member><function>fstat</function></member>
|
|
<member><function>filemtime</function></member>
|
|
<member><function>filegroup</function></member>
|
|
<member><classname>SplFileInfo</classname></member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|