SQLの窓 イラストAC フリー素材

2009年12月21日

PHP:Pearを使って動的にファイルセットを作ってzipでダウンロードさせる方法

通常は、Pear で必要なファイルを配置するのが面倒だと思うので、
必要なものだけをまとめてサンプル付きでダウンロードできるようにしました。


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


必要な Pear ライブラリは、 PHP License 3.0 と LGPL でした。
サンプルコードでそのまま殆どの場面で利用できると思います。

<?
// *********************************************************
// 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 書庫として出力
File_Archive::extract( 
	$files, $zip
); 

?>


ファイル化はリンク先にあるドキュメントのリンクから情報を比較的容易に取得できると思います。





【PHP+Pearの最新記事】
posted by at 2009-12-21 16:28 | PHP+Pear | このブログの読者になる | 更新情報をチェックする