PHPでFTP上のzipを展開

この記事は約3分で読めます。

以下のコードを使用することで、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ファイルを展開しています。

  1. FTPサーバーに接続し、ログインします。
  2. 指定したZIPファイルを一時的にローカルにダウンロードします。
  3. PHPのZipArchiveクラスを使用してZIPファイルを展開します。
  4. 展開先のディレクトリにファイルを保存します。
  5. 一時ファイルを削除し、FTP接続を閉じます。

注意点

このコードを実行するには、以下の点に注意してください。

  • FTPサーバーの情報(ホスト名、ユーザー名、パスワード)を正しく設定してください。
  • 展開先のディレクトリが存在し、書き込み権限があることを確認してください。
  • PHPのZipArchiveクラスが有効になっていることを確認してください。

まとめ

PHPを使用してFTPサーバー上のZIPファイルを展開する方法を紹介しました。この方法を利用することで、リモートサーバー上のZIPファイルを簡単に管理できます。必要に応じて、コードをカスタマイズして使用してください。

PHP
エンデ・バタロー

フロントエンドエンジニアとして10年目のキャリアを積んでおり、figma、Illustrator、Photoshop、WordPress、HTML、今は亡きXHTML、CSS(scss)、JavaScript(jQuery)、PHPなど使って日々仕事をしています。

仕事で検索する手間を省くためフロントエンド技術に関するブログを書いています。

制作のご依頼やお問い合わせはこちらから連絡お願いします。

エンデ・バタローをフォローする
シェアする
初めてのブログ

コメント

タイトルとURLをコピーしました