一つ目の方法としては、外部コマンドを実行して圧縮する方法。
サーバが外部コマンド実行関数を有効にしていないと使えないけど、とても速いし簡単。
$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 件のコメント:
コメントを投稿