PHP 8.4.0 RC4 available for testing

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip://Komprimierungsstreams

Beschreibung

compress.zlib:// und compress.bzip2://

zlib: funktioniert wie gzopen(), mit dem Unterschied, dass der Stream mit fread() und den anderen Dateisystemfunktionen verwendet werden kann. Diese Schreibweise ist aufgrund von Mehrdeutigkeiten mit Dateinamen, die einen Doppelpunkt (":") enthalten, veraltet; stattdessen sollte compress.zlib:// verwendet werden.

compress.zlib:// und compress.bzip2:// entsprechen den Funktionen gzopen() bzw. bzopen() und funktionieren auch auf Systemen, die fopencookie nicht unterstützen.

Die ZIP-Erweiterung registriert den Wrapper zip:. Seit PHP 7.2.0 und libzip 1.2.0+ werden Passwörter für verschlüsselte Archive unterstützt, sodass Passwörter über die Stream-Kontexte bereitgestellt werden können. Das Passwort kann mit der Stream-Kontextoption 'password' gesetzt werden.

Verwendung

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Optionen

Zusammenfassung des Wrappers
Eigenschaft wird unterstützt
Eingeschränkt durch allow_url_fopen Nein
Erlaubt Lesen Ja
Erlaubt Schreiben Ja (außer zip://)
Erlaubt Anfügen Ja (außer zip://)
Erlaubt gleichzeitiges Lesen und Schreiben Nein
Unterstützt stat() Nein, zum Abrufen von Informationen über komprimierte Dateien kann der Standard-Wrapper file:// verwendet werden.
Unterstützt unlink() Nein, zum Löschen komprimierter Dateien kann der Standard-Wrapper file:// verwendet werden.
Unterstützt rename() Nein
Unterstützt mkdir() Nein
Unterstützt rmdir() Nein

add a note

User Contributed Notes 2 notes

up
19
lewa::cpan.org
7 years ago
One-liners to gzip and ungzip a file:

copy('file.txt', 'compress.zlib://' . 'file.txt.gz');

copy('compress.zlib://' . 'file.txt.gz', 'file.txt');
up
12
alvaro at demogracia dot com
13 years ago
Example on how to read an entry from a ZIP archive (file "bar.txt" inside "./foo.zip"):

<?php

$fp
= fopen('zip://./foo.zip#bar.txt', 'r');
if(
$fp ){
while( !
feof($fp) ){
echo
fread($fp, 8192);
}
fclose($fp);
}

?>

Also, apparently, the "zip:" wrapper does not allow writing as of PHP/5.3.6. You can read http://php.net/ziparchive-getstream for further reference since the underlying code is probably the same.
To Top