SSH接続なしでZIP解凍するphpプログラム!ファイル数多い時便利!

SSH接続なしでZIP解凍するphpプログラム!ファイル数多い時便利!

SSH接続なしでZIP解凍するphpプログラムのご紹介です。大量に圧縮されていないバックアップファイルをFFFTPやFileZilla等のFTPソフトでアップロードするには時間がかかります。ワードプレスのバックアップでしたら、数十分以上もの莫大な時間がかかることもありますよね。

時間がかかる理由は、FTPは1ファイルごとにファイル送受信情報をやり取りしているからです。
ワードプレスのバックアップファイルのように、数が多ければ多いほど時間がかかってしまいます。

途中でFTP接続が切れてしまうことも良くあります。そんな時に便利なのが、このZIP解凍phpプログラムになります。

私の場合、以前は「teraterm(テラターム)といったSSH接続ソフト」を利用して、ZIP解凍コマンドを入力して解凍していました。ただ、このSSH接続の作業は結構手間がかかりますよね(Xサーバーですと、セキュリティ対策なので仕方ないですが、公開鍵認証をする必要がありますし、設定もとても面倒ですよね。)。

ところが、このphpプログラムを利用するようになってからは、とても楽になりました。

ワードプレスを丸ごとサーバーにアップロードしたり、サーバー移転をする際などに使っていただけたらと思います。

phpコードは、一番下にてご紹介しています。

ZIP解凍phpプログラムの使い方概要

1、大量にあるファイルを、フォルダ・ディレクトリにまとめておきます。

ワードプレスのデータファイルが格納されている「wp-content」フォルダ・ディレクトリをバックアップすることはよくあると思います。

2、解凍したいフォルダ・ディレクトリごと、ZIP形式で圧縮します。

解凍したいフォルダ・ディレクトリごと+Lhacaなどの圧縮ソフトにてZIP形式で圧縮します。

解凍したいフォルダ・ディレクトリごと、ZIP形式で圧縮1

解凍したいフォルダ・ディレクトリごと、ZIP形式で圧縮2

時間がかかりますが、FTPソフトで大量のファイルをアップロードするより、ずっと短時間でZIP圧縮できるはずです。

出来上がったファイル名は、「 wp-content.zip 」のようになります。拡張子は「 .zip 」としてください。

3、後の項目でご紹介していますphpプログラムを、パソコンなどのコンピューター側に保存します。
新しく、新規テキストファイルを作成して、phpプログラムをコピペして、ファイル名を「 unzip.php 」といったファイル名に変更します。

4、圧縮したZIPファイルと「 unzip.php 」のようなphpプログラムを、FTPソフトを使い、レンタルサーバーなどにアップロードします。
ファイルサイズが大きいので時間はかかると思いますが、ファイル数は1つですので大幅にアップロード時間が短縮されます。

圧縮したZIPファイルと「 unzip.php 」のようなphpプログラムを、FTPソフトを使い、レンタルサーバーなどにアップロード

5、アップロードしたphpファイルのフルパス・フルアドレスにて、アクセスし、入力フォームに「 解凍したいZIPファイル名 」を入力し、「UNZIP」ボタンを押します。 

OK–unzip success:このメッセージが出れば、ZIPファイルの解凍は完了です。
error–unzip failed:エラーです。何かしらの理由でZIPファイルの解凍が失敗しています。
error–this file is not zip file:エラーです。「.zip」を含まないZIPファイルが指定されています。

SSH接続なしでZIP解凍するphpプログラム!ファイル数多い時便利!1

SSH接続なしでZIP解凍するphpプログラム!ファイル数多い時便利!2

SSH接続なしでZIP解凍するphpプログラム!ファイル数多い時便利!3

ZIP解凍phpプログラムコードの紹介

<?php
//実行しているスクリプトのフルパスを取得
$scriptfullpath=(empty($_SERVER["HTTPS"]) ? "http://" : "https://").$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF'];

$filename="";
$filename= $_POST["filename"];

echo <<< EOM
<form method="post" action="$scriptfullpath">
<input type="hidden" name="mode" value="unzip">
-----Un Zip program-----<BR>
Input zip filename:<input type="text" name="filename" value="$filename">
<input type="submit" value="UNZIP">
</form>
EOM;

if(strpos($filename,'.zip') !== false){
//$filenameの中に.zipが含まれている場合
$zip = new ZipArchive;
$res = $zip->open($filename);
if ($res === TRUE) {
$zip->extractTo('./');
$zip->close();
echo 'OK--unzip success';
} else {
echo 'error--unzip failed';
}
}else{
//zipファイルではない
if($_POST["mode"] == "unzip"){echo 'error--this file is not zip file';}
}

?>

このZIP解凍phpプログラムコードがお役に立ちましたら幸いです。

コメント

タイトルとURLをコピーしました