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