以下のコードを使用することで、FTPサーバー上のZIPファイルを展開できます。
<?php
// FTPサーバーの設定
$ftp_server = "ftp.example.com";
$ftp_user = "username";
$ftp_pass = "password";
// ZIPファイルのパス
$zip_file = "path/to/yourfile.zip";
$extract_to = "path/to/extract/";
// FTP接続
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
// ZIPファイルを一時的にローカルにダウンロード
$temp_file = tempnam(sys_get_temp_dir(), 'zip');
if (ftp_get($conn_id, $temp_file, $zip_file, FTP_BINARY)) {
// ZipArchiveクラスを使用してZIPファイルを展開
$zip = new ZipArchive;
if ($zip->open($temp_file) === TRUE) {
$zip->extractTo($extract_to);
$zip->close();
echo "ZIPファイルが正常に展開されました。";
} else {
echo "ZIPファイルの展開に失敗しました。";
}
} else {
echo "ZIPファイルのダウンロードに失敗しました。";
}
// 一時ファイルを削除
unlink($temp_file);
// FTP接続を閉じる
ftp_close($conn_id);
?>
コードの解説
このコードでは、以下の手順でFTP上のZIPファイルを展開しています。
- FTPサーバーに接続し、ログインします。
- 指定したZIPファイルを一時的にローカルにダウンロードします。
- PHPの
ZipArchiveクラスを使用してZIPファイルを展開します。 - 展開先のディレクトリにファイルを保存します。
- 一時ファイルを削除し、FTP接続を閉じます。
注意点
このコードを実行するには、以下の点に注意してください。
- FTPサーバーの情報(ホスト名、ユーザー名、パスワード)を正しく設定してください。
- 展開先のディレクトリが存在し、書き込み権限があることを確認してください。
- PHPの
ZipArchiveクラスが有効になっていることを確認してください。
まとめ
PHPを使用してFTPサーバー上のZIPファイルを展開する方法を紹介しました。この方法を利用することで、リモートサーバー上のZIPファイルを簡単に管理できます。必要に応じて、コードをカスタマイズして使用してください。







コメント