fseek
(PHP 4, PHP 5, PHP 7, PHP 8)
fseek — Positioniert den Dateizeiger
Beschreibung
$stream
, int $offset
, int $whence
= SEEK_SET
): int
Setzt den Dateizeiger einer mit stream
angegebenen
Datei auf eine neue Position. Diese neue Position, angegeben in Bytes
vom Beginn der Datei an, wird definiert durch Hinzufügen von
offset
zu der Position spezifiziert durch
whence
.
Im Allgemeinen ist es erlaubt hinter das Ende der Datei (EOF) zu positionieren; wenn dann Daten geschrieben werden, ergeben Leseoperation in einer unbeschriebenen Region zwischen dem EOF und der gesetzten Position Bytes mit dem Wert 0. Allerdings unterstützen bestimmte Streams dieses Verhalten möglicherweise nicht, besonders wenn sie einen unterliegenden Speicher fester Größe haben.
Parameter-Liste
-
stream
-
Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.
-
offset
-
Der Offset.
Um zu einer Position vor EOF zu gelangen, übergeben Sie in
offset
einen negativen Wert und setzen Siewhence
aufSEEK_END
. -
whence
-
whence
Werte sind:SEEK_SET
- Setzt Position gleichoffset
BytesSEEK_CUR
- Setzt Position auf die aktuelle Stelle plusoffset
.SEEK_END
- Setzt die Position ans Ende der Datei plusoffset
.
Rückgabewerte
Bei Erfolg wird 0 zurückgegeben, andernfalls -1.
Beispiele
Beispiel #1 fseek() Beispiel
<?php
$fp = fopen('somefile.txt', 'r');
// lies einige Daten
$data = fgets($fp, 4096);
// gehe zurück an den Anfang der Datei
// das selbe wie rewind($fp);
fseek($fp, 0);
?>
Anmerkungen
Hinweis:
Wenn Sie die Datei im Anfügemodus (
a
odera+
) geöffnet haben, werden jegliche Daten, die sie in die Datei schreiben, immer angehängt, unabhängig vom Dateizeiger, und das Ergebnis des Aufrufs von seek() ist undefiniert.
Hinweis:
Nicht alle Streams unterstützen Positionierung. Für jene, die Positionierung nicht unterstützen, kann Vorwärtspositionierung durch Lesen und Verwerfen von Daten erreicht werden; andere Formen der Positionierung schlagen fehl.