PHPのftp_exec()関数とは?FTPサーバー上でコマンドを実行する方法を解説
ftp_exec()関数は、PHPでFTPサーバー上のコマンドを実行するために使用される組み込み関数です。この関数を使うことで、接続中のFTPサーバーに対して任意のシステムコマンド(例:ファイル一覧の取得など)を送信し、実行結果を得ることができます。
なお、この関数が動作するかどうかは、FTPサーバー側がSITE EXECコマンドに対応しているかに依存します。対応していないサーバーでは実行に失敗するため注意が必要です。
構文
ftp_exec(con, command)
パラメータ
con −
ftp_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()の方が確実に動作するため、用途に応じて使い分けるとよいでしょう。
-
PHPのftp_site()関数の使い方を解説
ftp_site()関数は、FTPサーバーに対してSITEコマンドを送信します。SITEコマンドは、ファイルのパーミッション変更(chmod)やグループメンバーシップの設定など、サーバーのOSに依存した機能を操作するために使用されます。構文ftp_site(conn, command);パラメータconn − FTP接続リソースを指定します。command − 実行するSITEコマンドを指定します。SITEコマンドの種類はサーバーごとに異なり、ファイルのパーミッションやグループメンバーシップなど、OS固有の機能を扱うために使用されます。戻り値ftp_site()関数は、コマンドの実行に成功した
-
PHPのftp_raw()関数とは?使い方とサンプルコードを解説
ftp_raw() 関数は、FTPサーバーに対して任意の生コマンド(RAWコマンド)を直接送信するためのPHPの組み込み関数です。標準のFTP関数ではカバーされていない操作を実行したい場合に特に役立ちます。 構文 ftp_raw(con, command) パラメータ con − FTP接続リソース command − 実行したいコマンド 戻り値 ftp_raw() 関数は、サーバーからの応答を文字列の配列として返します。応答が複数行にわたる場合でも、各行が配列の要素として格納されるため、柔軟に処理できます。 使用例 以下は、ftp_raw() 関数を使ってFTPサーバーに接続し、USER