【PHP】サーバー上でzipファイルをサクッと解凍unzipする方法

サーバー上でzipファイルをサクッと解凍unzipする方法は何種類かありますが、簡単なのは

  • SSHやtelnetからコマンド操作
  • 解凍用のプログラムを実行する

というような方法かなと思います。

google先生に尋ねると

shell_exec
ZipArchive

なんかを使いましょう、なんて出てきます。

以下のような感じ。

<?php
 $zip_file = 'sample.zip';            // 展開するzipファイルを指定

 $zip = new ZipArchive;
 if($zip->open("$zip_file") === TRUE) {
    $zip->extractTo('./');
    $zip->close();
    echo '成功';
 } else {
    echo '失敗';
 }
 ?>
<?php
 $zip_file = 'sample.zip';          // 展開するzipファイルを指定

 function unzip($zip_file) {
   return shell_exec("unzip $zip_file");
 }

 if($zip = unzip($zip_file)) {
   echo "解凍成功:$zip_file";
 } else {
   echo "解凍失敗:$zip_file";
 }
 ?>

でも、私はうまくできませんでした。

たぶん原因はフルパスやら相対パスを上手に操れなかったから。

そんな私でもできた解凍方法が以下。

地道ですが、以下のように解凍するのが間違いがなくて楽なんじゃないかと思います。

<?php

$cmd = "cd wp-content; dir; unzip sample.zip";
exec($cmd, $arr, $res);

/**以下は確認用**/
var_dump($arr); var_dump($res);

?>

PHPでunzipしました。

exec()でphpからコマンドを実行していきます。

cd ○○;でディレクトリを移動しつつ、dir;でその先にあるファイルとフォルダをチェック。

解凍したいzipファイルがカレントディレクトリに見つかったら unzip sample.zip;コマンドで解凍を行います。

そうすると、zip圧縮ファイルのあったディレクトリに解凍ファイルが生成されます。

この方法が、ちゃんと見えてトラッキングできるから私にはわかりやすい。

コメント

お知らせ

羽織紐を手作りしてます!よろしければご覧ください!
  • 天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
    天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
  • 天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
    天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
  • 天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー
    天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー

お知らせ

羽織紐を手作りしてます!よろしければご覧ください!
  • 天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
    天然石 マグネット式羽織紐 #01 / 着物小物 / ブルーグリーン / 水晶
  • 天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
    天然石 マグネット式羽織紐 #09 / 着物小物 / グレー / 高品質ルチルクォーツ
  • 天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー
    天然石 マグネット式羽織紐 #04 / 着物小物 / ネイビー
タイトルとURLをコピーしました