Start · Sprachen · PHP · Referenz · gzeof

gzeof

Funktion

Prüft, ob das Ende einer geöffneten gz-komprimierten Datei (EOF) erreicht wurde.

seit PHP 4.0.0 Kategorie: io

Signatur

gzeof(resource $stream): bool

Beschreibung

gzeof() prüft, ob der Dateipositionszeiger eines mit gzopen() geöffneten gz-Streams das Ende der Datei (End of File, EOF) erreicht hat. Die Funktion gibt true zurück, wenn das Ende der Datei erreicht oder ein Fehler aufgetreten ist.

Typischerweise wird gzeof() in Schleifen eingesetzt, um zeilenweise oder blockweise durch eine komprimierte Datei zu iterieren, ähnlich wie feof() für gewöhnliche Datei-Handles. Solange gzeof() false zurückgibt, können weitere Daten mit gzread(), gzgets() oder ähnlichen Funktionen gelesen werden.

Der übergebene $stream-Parameter muss ein gültiges, mit gzopen() geöffnetes Datei-Handle sein. Die Verwendung mit einem normalen fopen()-Handle ist nicht zulässig und führt zu einem Fehler.

Parameter

Name Typ Default Beschreibung
$stream Pflicht resource Ein gültiges gz-Datei-Handle, das zuvor mit gzopen() geöffnet wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn das Ende der gz-Datei erreicht wurde oder ein Fehler aufgetreten ist, andernfalls false.

Beispiele

Zeilenweise Ausgabe einer gz-komprimierten Datei

<?php
$handle = gzopen('beispiel.txt.gz', 'r');

if ($handle === false) {
    die('Datei konnte nicht geöffnet werden.');
}

while (!gzeof($handle)) {
    $zeile = gzgets($handle);
    if ($zeile !== false) {
        echo $zeile;
    }
}

gzclose($handle);
?>
(Inhalt der komprimierten Datei, zeilenweise ausgegeben)

Blockweises Lesen einer gz-Datei

<?php
$handle = gzopen('archiv.gz', 'r');

if ($handle === false) {
    die('Fehler beim Öffnen der Datei.');
}

$inhalt = '';
while (!gzeof($handle)) {
    $inhalt .= gzread($handle, 1024); // 1024 Bytes pro Durchlauf lesen
}

gzclose($handle);

echo 'Gelesene Bytes: ' . strlen($inhalt);
?>
Gelesene Bytes: (Anzahl der gelesenen Bytes)

// Wichtig · Fallstricke

Hinweis: gzeof() gibt auch true zurück, wenn ein Fehler beim Lesen der Datei aufgetreten ist. Es empfiehlt sich daher, den Rückgabewert von gzread() oder gzgets() zusätzlich auf false zu prüfen, um Lese­fehler von einem echten EOF zu unterscheiden.

Die Funktion setzt die Zlib-Erweiterung voraus, die in den meisten PHP-Installationen standardmäßig aktiviert ist. Sie ist ausschließlich für gz-komprimierte Dateien gedacht und darf nicht mit normalen Datei-Handles (fopen()) verwendet werden.