PHPのお勉強!

PHP TOP

zlib://

bzip2://

zip://

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' コンテキストオプションで設定できます。

利用法

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

オプション

ラッパーの概要
属性 サポートの有無
allow_url_fopen で制約される No
読み込み許可 Yes
書き込み許可 Yes (zip:// を除く)
追加許可 Yes (zip:// を除く)
同時読み書き許可 No
stat() のサポート No, 圧縮されたファイルの状態を知るには、通常の file:// ラッパーを使用します。
unlink() のサポート No, 圧縮されたファイルを unlink するには、通常の file:// ラッパーを使用します。
rename() のサポート No
mkdir() のサポート No
rmdir() のサポート No

add a note

User Contributed Notes 2 notes

up
20
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
11
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