(PHP 4, PHP 5, PHP 7)
fseek — Positioniert den Dateizeiger
$handle
, int $offset
[, int $whence
= SEEK_SET
] ) : int
Setzt den Dateizeiger einer mit handle
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.
handle
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 Sie
whence
auf SEEK_END
.
whence
whence
Werte sind:
SEEK_SET
- Setzt Position gleich offset
BytesSEEK_CUR
- Setzt Position auf die aktuelle Stelle plus offset
.SEEK_END
- Setzt die Position ans Ende der Datei plus offset
.Bei Erfolg wird 0 zurückgegeben, andernfalls -1.
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);
?>
Hinweis:
Wenn Sie die Datei im Anfügemodus (a oder a+) 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.