|
ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。
zip形式
tgz形式
PHP3の頃にもあったネタですが、PHP4.xでも基本的には同じです。
zlib圧縮関数を使って圧縮したデータファイルを作成し、ダウンロードさせるサンプルです。上のリンクからtgz、zipの各家意識でダウンロードできるようにしています。
zlib圧縮関数を使用するには、zlib 1.0.9 以上をインストールしておく必要があります。また、PHPのconfigure時に「--with-zlib」オプションを付けます。再install後、phpinfoを実行し、サポート状況を確認しておきます。  zlib-1.1.3には(確か)セキュリティーホールがありますので、最新版を使用するようにしましょう。
今回のサンプルでは、別途公開しているJDBC風Oracleアクセスクラスを使ってタブ区切りデータを作成しています。
●zlib.phpの抜粋
<?php
:
$filename = tempnam ('/tmp', 'test').'.dat.gz';
$dl_filename = 'test.dat.gz';
$zp = gzopen($filename, "w9");
gzwrite($zp, mb_convert_encoding($data, "SJIS"));
gzclose($zp);
header("Content-disposition: attachment; filename=$dl_filename");
header("Content-type: application/octet-stream; name=$dl_filename");
$fp = fopen($filename, "r");
echo fread($fp, filesize($filename));
fclose($fp);
unlink ($filename);
?>
|