2010年3月30日火曜日

PHPでファイル・ディレクトリを圧縮する方法 ~その1~

サーバ上のファイルをまとめて圧縮する方法をちょっと考えてみた・・・
一つ目の方法としては、外部コマンドを実行して圧縮する方法。

サーバが外部コマンド実行関数を有効にしていないと使えないけど、とても速いし簡単。

$compressTargetDir(圧縮対象ファイル・ディレクトリ)と$compressedFileName(圧縮ファイル名)を
引数として関数を呼び出すと圧縮してくれます。


function makeCompressedFile($compressTargetDir , $compressedFileName) {

 if(is_null($compressTargetDir) || is_null($compressedFileName)){
  return -1;
 }

 // 文字エンコード変換
 $compressTargetDir = mb_convert_encoding($compressTargetDir,"SJIS");
 $compressedFileName = mb_convert_encoding($compressedFileName,"SJIS");

 // 対象ファイル・ディレクトリ存在チェック
 if (!file_exists($compressTargetDir)) { return -1; }

 // 圧縮処理
 $re = exec("zip -r $compressedFileName $compressTargetDir", $output, $return_var);

 // 正常終了したか確認
 if($return_var === 0){
  return 1;
 }else{
  return -1;
 }
}

0 件のコメント:

コメントを投稿