1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 07:12:15 +01:00
Files
Martin Samesch 7422e9d190 Sync with EN
2024-03-12 22:47:39 +01:00

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;
&note.filesystem-time-res;
&note.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
-->