大量ファイルFTP転送、タイムアウトでイラッとしてませんか?
WEB先案内
レンタルサーバーから、データをバックアップしたい時、逆にアップロードしたい時、大規模なサイトやワードプレスを使っている場合などではファイル数がとんでもない量になったりします。 これから説明する方法を使うと、普段使っているレンタルサーバーで手間を省けてストレスフリーになれます! ぜひ最後までご覧ください。
利用可能なレンタルサーバー
基本的にはどのレンタルサーバーでもOKですが、PHPが利用可能な事が必須条件になります。 HTMLサーバーではこの方法は使用出来ないのであらかじめご了承下さい。
アップロードやダウンロードの手間を省く
FTPソフトなどで大量のファイルのアップロードやダウンロードしたい場合、ファイルやディレクトリを一度圧縮したzipファイルで行うことをおすすめします。
PHPファイルを作成
圧縮するコード
まずはテキストファイルに以下の内容をそのままコピペします。
<?php
system('tar -zcf 圧縮後のファイル名.zip 圧縮対象ファイル名/ディレクトリ名');
system('tar -tf 圧縮後のファイル名.zip');
PHP解説
1行目ではPHPプログラムが開始されることを意味しています。 2行目では、systemの引数にtarコマンドを指定することで、サーバーが圧縮処理を実行します。ここでは「圧縮対象ファイル名/ディレクトリ名」を、1つのアーカイブファイルに圧縮しろというコマンドを記述しています。
3行目では、zipファイルの中身を出力しています。(中身を確認しなくても良い場合は削除してOKです)
使い方
たとえば、ドキュメントルートにzip.phpをアップロードして、アップロードが済んだらブラウザからzip.phpを実行します。 ブラウザでzip.phpへのパスを正しく指定できれば、ドキュメントルート以外にアップロードしても大丈夫です。
解凍するコード
まずはテキストファイルに以下の内容をそのままコピペします。
<?php
$zip = new ZipArchive;
//解凍ファイル名を指定
if ($zip->open('解凍したいファイル名.zip') === TRUE) {
//解凍先を指定
$zip->extractTo('./');
$zip->close();
echo '成功';
} else {
echo '失敗';
}
PHP解説
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を実行します。
まとめ
この方法はFTPを利用した通常のアップロードと比べてかなり快適になると思いますのでお役に立てば幸いです。
ご理解ください
PHPが利用可能なサーバーでしか使えないのが難点です。
WordPressが使えるレンタルサーバーでは標準でPHPが使えるようになっているはずですが、万一、動かない場合はゴメンナサイ(^◇^;)
あわせて読みたい
ABOUT ME