CXIIzlib圧縮関数
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ã€Jean-loup Gailly ãŠã‚ˆã³ Mark Adler ã«ã‚ˆã‚‹
é€éŽçš„ã« gzip (.gz) ã§åœ§ç¸®ã•れãŸãƒ•ァイルをèªã¿æ›¸ãã™ã‚‹ãŸã‚ã®
zlib ã®é–¢æ•°ã‚’使用ã—ã¾ã™ã€‚
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’使用ã™ã‚‹ã«ã¯ã€zlib ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 1.0.9 以上を
使用ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ã€gzip ã§åœ§ç¸®ã•れãŸãƒ•ァイルã§å‹•作ã™ã‚‹ç‰ˆã®å¤šãã®
filesystem 関数をå«ã‚“ã§ã„ã¾ã™ã€‚
(éžåœ§ç¸®ã®ãƒ•ァイルも使用å¯èƒ½ã§ã™ãŒã€ã‚½ã‚±ãƒƒãƒˆã¯ä½¿ç”¨ã§ãã¾ã›ã‚“)
注æ„
ãƒãƒ¼ã‚¸ãƒ§ãƒ³4.0.4-devã§.gzファイルã«å¯¾å¿œã—ãŸfopen-wrapperã‚’å°Žå…¥ã—ã¾ã—ãŸã€‚
ã“れã«ã‚ˆã‚Šfopen()ã«'zlib:'をプレフィクスã¨ã—ãŸ
ファイルååˆã¯ãƒ‘スåを渡ã™ã“ã¨ã§ã€é€šå¸¸ã®f*()関数ã§åœ§ç¸®ã•れãŸãƒ•ァイルã«
é€éŽçš„ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚
ã“ã®æ©Ÿèƒ½ã‚’利用ã™ã‚‹ã«ã¯fopencookie()関数をæä¾›ã™ã‚‹
Cã®ãƒ©ãƒ³ã‚¿ã‚¤ãƒ ライブラリãŒå¿…è¦ã§ã™ã€‚ç¾åœ¨ç§ã®çŸ¥ã‚‹é™ã‚Šã§ã¯ã€GNU libcãŒ
ã“ã®æ©Ÿèƒ½ã‚’æä¾›ã™ã‚‹å”¯ä¸€ã®ãƒ©ã‚¤ãƒ–ラリã§ã™ã€‚
ç°¡å˜ãªã‚³ãƒ¼ãƒ‰ã®ä¾‹
テンãƒãƒ©ãƒªãƒ•ァイルをオープンã—ã€ãƒ†ã‚¹ãƒˆç”¨æ–‡å—列を書ãã“ã¿ã€
ç¶šã„ã¦ã€ã“ã®ãƒ•ァイルã®å†…容を2回出力ã—ã¾ã™ã€‚
例 1ç°¡å˜ãª Zlib ã®ä¾‹ <?php
$filename = tempnam ('/tmp', 'zlibtest').'.gz';
print "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";
// 最大é™ã®åœ§ç¸®ã‚’指定ã—ã¦æ›¸ãã“ã¿ç”¨ã«ãƒ•ァイルをオープン
$zp = gzopen ($filename, "w9");
// æ–‡å—åˆ—ã‚’ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ãã“ã‚€
gzwrite ($zp, $s);
// ファイルを閉ã˜ã‚‹
gzclose ($zp);
// èªã¿ã“ã¿ç”¨ã«ãƒ•ァイルをオープン
$zp = gzopen ($filename, "r");
// 3æ–‡å—èªã¿ã“ã‚€
print gzread ($zp, 3);
// ファイルã®çµ‚端ã¾ã§èªã¿ã€é–‰ã˜ã‚‹
gzpassthru ($zp);
print "\n";
// ファイルをオープンã—ã€å†…容を出力ã™ã‚‹ (2回目)。
if (readgzfile ($filename) != strlen ($s)) {
echo "Error with zlib functions!";
}
unlink ($filename);
print "</pre>\n</h1></body>\n</html>\n";
?> |
|
- 目次
- gzclose -- é–‹ã‹ã‚ŒãŸgzファイルã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’é–‰ã˜ã‚‹
- gzcompress -- æ–‡å—列をdeflate圧縮ã™ã‚‹
- gzdeflate -- æ–‡å—列を deflate 圧縮ã™ã‚‹
- gzencode -- gzip 圧縮ã•ã‚ŒãŸæ–‡å—列を作æˆ
- gzeof -- gz ファイルãƒã‚¤ãƒ³ã‚¿ã«ãŠã„ã¦ãƒ•ァイル終端を調ã¹ã‚‹
- gzfile -- gzファイル全体をé…列ã«èªã¿è¾¼ã‚€
- gzgetc -- gz ファイルã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‹ã‚‰æ–‡å—ã‚’å¾—ã‚‹
- gzgets -- ファイルãƒã‚¤ãƒ³ã‚¿ã‹ã‚‰ 1 行を得る
- gzgetss --
gzファイルã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‹ã‚‰1行を得ã¦ã€HTMLã‚¿ã‚°ã‚’å–り除ã
- gzinflate -- deflate圧縮ã•ã‚ŒãŸæ–‡å—列を解å‡ã™ã‚‹
- gzopen -- gz ファイルを開ã
- gzpassthru --
gzファイルã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‹ã‚‰æ®‹ã‚Šã®ãƒ‡ãƒ¼ã‚¿å…¨éƒ¨ã‚’出力ã™ã‚‹
- gzputs -- gz ファイルã¸ã®ãƒã‚¤ãƒ³ã‚¿ã«æ›¸ã込む
- gzread -- ãƒã‚¤ãƒŠãƒªå¯¾å¿œã®gzファイルèªã¿è¾¼ã¿
- gzrewind -- gz ファイルãƒã‚¤ãƒ³ã‚¿ã®ç¤ºã™ä½ç½®ã‚’å…ƒã«æˆ»ã™
- gzseek -- gz ファイルãƒã‚¤ãƒ³ã‚¿ã®ä½ç½®ã‚’移動ã™ã‚‹
- gztell -- gzファイルãƒã‚¤ãƒ³ã‚¿ã®èªã¿è¾¼ã¿/書ãè¾¼ã¿ä½ç½®ã‚’è¿”ã—ã¾ã™
- gzuncompress -- deflate圧縮ã•ã‚ŒãŸæ–‡å—列を解å‡ã™ã‚‹
- gzwrite -- ãƒã‚¤ãƒŠãƒªå¯¾å¿œã®gzファイル書ãè¾¼ã¿
- readgzfile -- gz ファイルを出力ã™ã‚‹