少し文脈から外れた答えですが、確かに機能します。その ftp ディレクトリで Apache + php を実行している場合は、そのフォルダーに zip ファイルをアップロードし、extractor.php
を作成します。 :
$zip = new ZipArchive;
if ($zip->open('my_zip.zip') === TRUE) {
$zip->extractTo('/path/to/my/zip');
$zip->close();
echo 'ok';
}
次に、URL をヒットします。例:http://example.com/extractor.php
bingo php がその zip を解凍します。
FTP 接続を介してファイルを解凍することはできません。 FTP は「File Transfer Protocol」の略で、リモート エンドでファイルを転送し、部分的に管理するためだけに設計されており、コマンドを実行するためのものではありません。アーカイブを解凍するには、tar や bzip2 などのプログラムを実行する必要がありますが、FTP 接続では実行できません。
SSH などのコマンドを実行できる別のセッションが必要です。または、マシンでアーカイブを解凍し、FTP 経由でコンテンツを転送します。これは、小さなファイルが多数ある場合、FTP のオーバーヘッドのためにかなり遅くなります。
curlftpfs
を使用して ftp リソースをマウントすると、それが可能になります。 :
curlftpfs ftp://ftp.server.org/ /path/to/mountpoint
それから
unzip /path/to/mount/test.zip