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

PHPのftp_pasv()関数とは?パッシブモード切替の使い方を徹底解説

ftp_pasv()関数は、FTP接続におけるパッシブモード(受動モード)のオン・オフを切り替えるための関数です。ファイアウォールやNAT環境下では、パッシブモードを有効にすることでファイル転送がスムーズに行えるようになります。

構文

ftp_pasv(con, pasv)

パラメータ

  • con − FTP接続リソース(ftp_connect()で取得した接続)を指定します。

  • pasv − パッシブモードの状態を指定します。指定できる値は以下の2つです。

    • TRUE(パッシブモードを有効にする)

    • FALSE(パッシブモードを無効にする)

戻り値

ftp_pasv()関数は、処理が成功した場合にTRUE、失敗した場合にFALSEを返します。

使用例

以下は、ftp_pasv()関数でパッシブモードを有効にしたうえで、ローカルファイルをFTPサーバーへアップロードするサンプルコードです。

<?php
    $ftp_server = "192.168.0.4";
    $ftp_user = "tim";
    $ftp_pass = "wthbn#@121";

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

    // ログイン
    $login = ftp_login($con, $ftp_user, $ftp_pass);

    // パッシブモードを有効にする
    ftp_pasv($con, true);

    $local_file = "localfile.txt";      // ローカル側のファイル
    $my_serverfile = "serverfile.txt";  // サーバー側の保存先ファイル名

    // ファイルをアップロード
    if (ftp_put($con, $my_serverfile, $local_file, FTP_ASCII)) {
        echo "ファイルのアップロードに成功しました!";
    } else {
        echo "ファイルのアップロード中にエラーが発生しました!";
    }

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

補足:パッシブモードを使うメリット

パッシブモードは、データ接続をクライアント側から開始する通信方式です。多くのファイアウォール環境では、サーバー側からクライアントへ接続を試みるアクティブモードがブロックされるため、実務ではftp_login()の直後にftp_pasv($con, true)を呼び出してパッシブモードを有効化しておくのが一般的なベストプラクティスとされています。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

  2. PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説

    lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し