セキュアな SSL-FTP 接続をオープンする

# ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_ssl_connect — セキュアな SSL-FTP 接続をオープンする

### 説明

function ftp_ssl_connect(string `$hostname`, int `$port` = 21, int `$timeout` = 90): FTP\Connection|false

ftp_ssl_connect() は、指定した `hostname` への明示的な SSL-FTP 接続をオープンします。 これは、サーバー側が SSL-FTP 接続に対応していなくても、 ftp_ssl_connect() は成功するということです。 ftp_login() をコールし、 クライアントが適切な `AUTH FTP` コマンドを送信した時点ではじめて、 ftp_login() が失敗することになります。 ftp_ssl_connect() が確立する接続では、接続先の証明書の検証を行いません。

> 注意: この関数が存在しないことがあるのはなぜですか？

> PHP 7.0.0 より前のバージョンでは、 ftp_ssl_connect() が使えるのは ftp拡張モジュールと OpenSSL が静的に PHP に組み込まれている場合だけでした。 つまり、Windows 版の PHP 公式ビルドではこの関数は使えなかったということです。 この関数を Windows で使いたい場合は、PHP バイナリを自分でコンパイルしなければなりませんでした。

> 注意:

> ftp_ssl_connect() は、sFTP で使うための関数ではありません。 PHP で sFTP を使うには ssh2_sftp() を参照ください。

### パラメータ

`hostname`

  FTP サーバーのアドレス。このパラメータには、最後のスラッシュや 先頭の `ftp://` をつけてはいけません。

`port`

  `port` パラメータは別のポートに接続することを 指定します。これを省略するか 0 にした場合、デフォルトの FTP ポート、 つまり 21 が使用されます。

`timeout`

  このパラメータは、以降の全てのネットワーク処理の タイムアウトを指定します。省略された場合の デフォルト値は、90 秒となります。timeout は、 ftp_set_option() および ftp_get_option() でいつでも変更および取得可能です。

### 戻り値

成功した場合に FTP\Connection クラスのインスタンスを返します。 失敗した場合に `false` を返します

### 変更履歴

バージョン | 説明
--- | ---
8.1.0 | FTP\Connection クラスのインスタンスを返すようになりました。 これより前のバージョンでは、resource を返していました。

### 例

例1 ftp_ssl_connect() の例

    <?php

    // SSL 接続を確立する
    $ftp = ftp_ssl_connect($ftp_server);

    // ユーザー名とパスワードでログインする
    $login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

    if (!$login_result) {
        // この場合は、すでに PHP 側で E_WARNING レベルのメッセージを発行しています。
        die("can't login");
    }

    echo ftp_pwd($ftp);

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

### 参考

- ftp_connect() - FTP 接続をオープンする

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open