PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのftp_exec()関数とは?FTPサーバー上でコマンドを実行する方法を解説

ftp_exec()関数は、PHPでFTPサーバー上のコマンドを実行するために使用される組み込み関数です。この関数を使うことで、接続中のFTPサーバーに対して任意のシステムコマンド(例:ファイル一覧の取得など)を送信し、実行結果を得ることができます。

なお、この関数が動作するかどうかは、FTPサーバー側がSITE EXECコマンドに対応しているかに依存します。対応していないサーバーでは実行に失敗するため注意が必要です。

構文

ftp_exec(con, command)

パラメータ

  • conftp_connect()で確立したFTP接続リソースを指定します。

  • command − FTPサーバー上で実行したいコマンドを文字列で指定します。

戻り値

コマンドが正常に実行された場合はTRUEを返し、失敗した場合はFALSEを返します。

使用例

以下は、FTPサーバーに接続してlsコマンドを実行し、リモートディレクトリ内のファイル一覧を取得するサンプルコードです。

<?php
   $ftp_server="192.168.0.4";
   $ftp_user="amit";
   $ftp_pass="tywg61gh";

   // FTPサーバーへ接続
   $con = ftp_connect($ftp_server) or die("$ftp_server に接続できませんでした");

   // リモートディレクトリ内の全ファイルを一覧表示するコマンド
   $command = 'ls';

   // コマンドを実行
   if (ftp_exec($con, $command)) {
      echo "コマンドは正常に実行されました!";
   } else {
      echo "コマンドの実行に失敗しました!";
   }

   // 接続を閉じる
   ftp_close($con);
?>

補足ポイント

  • ftp_exec()を使用するには、あらかじめftp_login()で認証を済ませておくのが一般的です。

  • セキュリティ上の理由から、多くのレンタルサーバーや共有ホスティング環境ではSITE EXECコマンドが無効化されている場合があります。その場合は常にFALSEが返されます。

  • 単純にファイル一覧を取得したいだけであれば、ftp_nlist()ftp_rawlist()の方が確実に動作するため、用途に応じて使い分けるとよいでしょう。

  1. PHPのftp_site()関数の使い方を解説

    ftp_site()関数は、FTPサーバーに対してSITEコマンドを送信します。SITEコマンドは、ファイルのパーミッション変更(chmod)やグループメンバーシップの設定など、サーバーのOSに依存した機能を操作するために使用されます。構文ftp_site(conn, command);パラメータconn − FTP接続リソースを指定します。command − 実行するSITEコマンドを指定します。SITEコマンドの種類はサーバーごとに異なり、ファイルのパーミッションやグループメンバーシップなど、OS固有の機能を扱うために使用されます。戻り値ftp_site()関数は、コマンドの実行に成功した

  2. PHPのftp_raw()関数とは?使い方とサンプルコードを解説

    ftp_raw() 関数は、FTPサーバーに対して任意の生コマンド(RAWコマンド)を直接送信するためのPHPの組み込み関数です。標準のFTP関数ではカバーされていない操作を実行したい場合に特に役立ちます。 構文 ftp_raw(con, command) パラメータ con − FTP接続リソース command − 実行したいコマンド 戻り値 ftp_raw() 関数は、サーバーからの応答を文字列の配列として返します。応答が複数行にわたる場合でも、各行が配列の要素として格納されるため、柔軟に処理できます。 使用例 以下は、ftp_raw() 関数を使ってFTPサーバーに接続し、USER