WordPressあれこれ

大量ファイルFTP転送、タイムアウトでイラッとしてませんか?

PHPでzip圧縮
WEB先案内
レンタルサーバーから、データをバックアップしたい時、逆にアップロードしたい時、大規模なサイトやワードプレスを使っている場合などではファイル数がとんでもない量になったりします。

これから説明する方法を使うと、普段使っているレンタルサーバーで手間を省けてストレスフリーになれます!

ぜひ最後までご覧ください。

利用可能なレンタルサーバー

基本的にはどのレンタルサーバーでもOKですが、PHPが利用可能な事が必須条件になります。

HTMLサーバーではこの方法は使用出来ないのであらかじめご了承下さい。

アップロードやダウンロードの手間を省く

FTPソフトなどで大量のファイルのアップロードやダウンロードしたい場合、ファイルやディレクトリを一度圧縮したzipファイルで行うことをおすすめします。

PHPファイルを作成

圧縮するコード

まずはテキストファイルに以下の内容をそのままコピペします。
1<?php
2 system('tar -zcf 圧縮後のファイル名.zip 圧縮対象ファイル名/ディレクトリ名');
3 system('tar -tf 圧縮後のファイル名.zip');
4?>

解説

1行目ではPHPプログラムが開始されることを意味しています。

2行目では、systemの引数にtarコマンドを指定することで、サーバーが圧縮処理を実行します。ここでは「圧縮対象ファイル名/ディレクトリ名」を、1つのアーカイブファイルに圧縮しろというコマンドを記述しています。

tarコマンドのオプション

z:gzipの圧縮処理を行う
c:新規にアーカイブを作成する
f:アーカイブファイルを指定する

3行目では、zipファイルの中身を出力しています。(中身を確認しなくても良い場合は削除してOKです)

tarコマンドのオプション

t:アーカイブファイルの一覧を表示する
f:アーカイブファイルを指定する

使い方

たとえば、ドキュメントルートにzip.phpをアップロードして、アップロードが済んだらブラウザからzip.phpを実行します。

ブラウザでzip.phpへのパスを正しく指定できれば、ドキュメントルート以外にアップロードしても大丈夫です。
アドレスバーにzip.phpへパスを指定
アドレスバーにzip.phpへパスを指定

解凍するコード

まずはテキストファイルに以下の内容をそのままコピペします。
1<?php
2    $zip = new ZipArchive;
3
4    //解凍ファイル名を指定
5  if ($zip->open('解凍したいファイル名.zip') === TRUE) {
6
7        //解凍先を指定
8        $zip->extractTo('./');
9        $zip->close();
10
11        echo '成功';
12
13    } else {
14
15        echo '失敗';
16    
17    }
18?>

解説

1行目ではPHPプログラムが開始されることを意味しています。

2行目の$zip = new ZipArchive;では、new演算子を利用してZipArchiveクラスを利用するための準備をして、変数$zipに格納しています。

5行目の if ($zip->open(‘解凍したいファイル名.zip’) === TRUE) {では、解凍したいファイル名.zipというファイルを開くことができる場合に8行目以降の処理をするという条件の指定しています。

8行目の$zip->extractTo(‘./’);では、extractTo( )の括弧の中に解凍する場所を指定することで、zipファイルの解凍が可能です。ここでは、解凍したいファイル名.zipと同じ階層を指定しております。

9行目の$zip->close();では、zipファイルを閉じて、解凍処理を終了しています。

解凍が成功した場合、11行目の成功が表示され、失敗した場合は15行目の失敗が表示されます。
ZipArchiveクラスのextractTo関数とは
ZipArchiveクラスのextractTo関数は、PHP5.2.0以降のPHP5系、 PHP7系で利用が可能です。(ZipArchiveクラスのextractTo関数について)

また、利用には、PHPの拡張モジュールである、PECLの1.1.0以降が必要です。

使い方

展開するzipファイルと同じ場所にunzip.phpをアップロードして、アップロードが済んだらブラウザからunzip.phpを実行します。
アドレスバーにunzip.phpへパスを指定
アドレスバーにunzip.phpへパスを指定

まとめ

この方法はFTPを利用した通常のアップロードと比べてかなり快適になると思いますのでお役に立てば幸いです。
ご理解ください

PHPが利用可能なサーバーでしか使えないのが難点です。

WordPressが使えるレンタルサーバーでは標準でPHPが使えるようになっているはずですが、万一、動かない場合はゴメンナサイ(^◇^;)

あわせて読みたい

PHPが利用可能なサーバーでしか使えないのが難点です。

ファイルやディレクトリのパスを正しく指定することがポイントです。
パス指定について詳しく知りたい場合はご覧ください。

絶対パスと相対パス

ABOUT ME
WEBさん
WEBさん
WordPressの不具合をなおす人
あなたのお仕事をする時間を使ってITに関することを調べたり、トライしてみたりして、それでもうまくいかない。そんなことはありませんか? WEB先案内をご利用いただくと、困ったときにITの顧問としてあなたのITに関するお悩みにお答えし、サポートを行うことができます。
記事URLをコピーしました