PHP : Pear 同梱ですぐ使える、動的に ZIP 書庫をダウンロードさせるサンプル

  ダウンロード




ブラウザでダウンロード

ダウンロードして解凍して、そのディレクトリを WWW サーバから表示するようにするだけで
そのままテストできます。ZIP 書庫をダウンロードさせるそのファイル(php)と、そのファイルを
shift_jis に変換したファイルとしてその場で作成して、Pear のライブラリ群も追加します。

仕様上、ファイルサイズをヘッダーに出力しないので、進行状況のプログレスバーは表示されませんが、
動的に作れるところがメリットです。各 Pear は以下のようなライセンスとなっています。

PEAR.php : PHP License 3.0
File_Archive : LGPL
MIME_Type : PHP License 3.0

数年運用してきたものなので、Pear 関連のバージョンが古いですが、
必要ならば最新と入れ替えて下さい。最も最初に必要とするドキュメント
ページのリンクを以下に示します

Manual :: Saving archives

PEARマニュアル:アーカイブの保存 / ライター



  ソースコード



非常に単純ですが、ドキュメントからはなかなか解りにくいものです。
以下の処理でたいていの応用ができると思います。

  
<?
// *********************************************************
// Pear ライブリを使用する為に、include パスを設定し、
// 必要なライブラリを読み込む
// *********************************************************
set_include_path( ".".PATH_SEPARATOR."../pear" );
require_once "File/Archive.php";

// 日本語処理の為に内部エンコードを明示設定
mb_language( "ja" );
mb_internal_encoding("EUC-JP");

// Pear ライブラリを含める
$files = array(
	 "../pear"
);

// ダウンロード用アーカイブを決定
$zip = File_Archive::toArchive(
	"zip_sample.zip",
	File_Archive::toOutput()
);

// このファイル自身を追加する
$files[] = "./zip_download.php";


// shift_jis に変換したファイルを追加する
// 為のエントリを追加
$zip->newFile("zip_download_sjis.php");

// 元データを取得
$txt = file_get_contents( "./zip_download.php" );
// shift_jis に変換
$txt = mb_convert_encoding (
	$txt,
	"shift_jis",
	"euc-jp" );
// エントリに書き込む
$zip->writeData( $txt ); 
$zip->close(); 

// zip 書庫として出力
File_Archive::extract( 
	$files, $zip
); 

?>
  













   SQLの窓    create:2009/12/21  update:2015/09/23   管理者用(要ログイン)





フリーフォントツール

SQLの窓ツール

SQLの窓フリーソフト

写真素材

一般ツールリンク

SQLの窓

フリーソフト

JSライブラリ