CMS本体やライブラリなど、結構な量のファイルをアップロードする場合などはどうやってアップロードしているでしょうか?
普通はディレクトリ(フォルダ)ごとアップロードするなどの手段を思いつきますが非常に時間がかかる上、必ずどこかで失敗するので私は好きではありません。
VPSや一棟借りサーバですと、puttyなどのSSHターミナルで接続できるので、UNIXのunzipコマンドを実行できるのですが、レンタルサーバではターミナル類が禁止されているところもあります。
そこでzip圧縮済みのファイルをアップロードし、PHPでunzipコマンドを実行してしまおうというのが今回の内容です。
PHPでunzipコマンドを実行する
2種類のファイルを用意します。
ひとつは、アップロードするモノを圧縮したzipファイル。
今回は hoge.zip とします。
もうひとつが展開用のPHPファイル。
今回はわかりやすく unzip.php とします。
このふたつをアップロードします。
実行用PHPファイル(unzip.php)
|
1 2 |
$zipfile = "hoge.zip"; return shell_exec("unzip $zipfile"); |
このファイルをアップロードし、ブラウザからアクセスするだけ。
わずか3行のスクリプトですが、効果は絶大。
FTPの時間を圧倒的に短縮できます。
展開後に元のzipファイル(hoge.zip)と、unzip.phpを削除するのを忘れずに。


