One-liners to gzip and ungzip a file:
copy('file.txt', 'compress.zlib://' . 'file.txt.gz');
copy('compress.zlib://' . 'file.txt.gz', 'file.txt');zlib:// -- bzip2:// -- zip:// β Π‘ΠΆΠ°ΡΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ
compress.zlib:// ΠΈ compress.bzip2://
ΠΠ±ΡΡΡΠΊΠ° zlib: ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ gzopen(), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ ΡΡΠΎ Ρ ΡΡΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ fread() ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. ΠΠ±ΡΡΡΠΊΠ° ΡΡΡΠ°ΡΠ΅Π»Π° ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ':'; Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ±ΡΡΡΠΊΠΎΠΉ compress.zlib://.
ΠΠ±ΡΡΡΠΊΠΈ compress.zlib:// ΠΈ compress.bzip2:// ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌ gzopen() ΠΈ bzopen() ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ fopencookie.
ΠΠΎΠ΄ΡΠ»Ρ ZIP Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΡΡΠΊΡ zip:.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ PHP 7.2.0 ΠΈ libzip 1.2.0+ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π΄Π»Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ
Π°ΡΡ
ΠΈΠ²ΠΎΠ²,
ΡΠ°Π·ΡΠ΅ΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΠ°ΡΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΎΠΏΡΠΈΡ 'password'.
One-liners to gzip and ungzip a file:
copy('file.txt', 'compress.zlib://' . 'file.txt.gz');
copy('compress.zlib://' . 'file.txt.gz', 'file.txt');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.