Signatur
Beschreibung
gzgetss() ist das gz-komprimierte Äquivalent zu fgetss() und kombiniert die Funktion gzgets() mit automatischem Tag-Stripping. Es liest eine Zeile aus einer mit gzopen() geöffneten komprimierten Datei und entfernt alle HTML- und PHP-Tags aus der gelesenen Zeile, bevor sie zurückgegeben wird.
Der Parameter length begrenzt die maximale Anzahl der zu lesenden Zeichen. Wird er weggelassen oder auf 0 gesetzt, wird die Zeile bis zum Zeilenende oder bis zum Ende der Datei gelesen. Mit allowable_tags können bestimmte HTML-Tags angegeben werden, die nicht entfernt werden sollen.
Diese Funktion ist sinnvoll, wenn komprimierte Textdateien mit HTML-Inhalten verarbeitet werden und der Klartext ohne Markup benötigt wird, beispielsweise bei der Indexierung oder Textanalyse von komprimierten HTML-Dokumenten.
Hinweis: gzgetss() ist seit PHP 7.3.0 als veraltet (deprecated) markiert und in PHP 8.0.0 vollständig entfernt worden. Für neuen Code sollte stattdessen gzgets() in Verbindung mit strip_tags() verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $zp Pflicht | resource | Ein gültiger gz-Datei-Ressource-Zeiger, der zuvor mit gzopen() geöffnet wurde. |
|
| $length | int | 0 | Maximale Anzahl der zu lesenden Bytes (inklusive Zeilenumbruch). Bei 0 wird bis zum Zeilenende gelesen. |
| $allowable_tags | string | Eine Zeichenkette mit HTML-Tags, die nicht entfernt werden sollen, z. B. '<b><i>'. |
Rückgabewert
false zurückgegeben.Beispiele
Komprimierte HTML-Datei zeilenweise als Klartext lesen (PHP < 8.0)
<?php
// Nur für PHP 5.x / 7.x gültig (deprecated seit 7.3, entfernt in 8.0)
$gz = gzopen('inhalt.html.gz', 'r');
if ($gz === false) {
die('Datei konnte nicht geöffnet werden.');
}
while (!gzeof($gz)) {
$zeile = gzgetss($gz, 4096, '<b><strong>');
if ($zeile !== false) {
echo $zeile;
}
}
gzclose($gz);
Moderner Ersatz mit gzgets() und strip_tags() (PHP 8+)
<?php
// Empfohlene Alternative für PHP 8.0 und neuer
$gz = gzopen('inhalt.html.gz', 'r');
if ($gz === false) {
die('Datei konnte nicht geöffnet werden.');
}
while (!gzeof($gz)) {
$zeile = gzgets($gz, 4096);
if ($zeile !== false) {
echo strip_tags($zeile, '<b><strong>');
}
}
gzclose($gz);
// Wichtig · Fallstricke
Deprecation: gzgetss() wurde mit PHP 7.3.0 als veraltet markiert (E_DEPRECATED) und in PHP 8.0.0 vollständig aus der Sprache entfernt. Jede Verwendung in modernem Code sollte durch eine Kombination aus gzgets() und strip_tags() ersetzt werden.
Sicherheit: Das Entfernen von HTML-Tags mittels gzgetss() (bzw. strip_tags()) bietet keinen zuverlässigen XSS-Schutz. Für die sichere Ausgabe von Benutzereingaben in HTML sollte stets htmlspecialchars() verwendet werden.