ftp_ssl_connect

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

説明

FTP\Connectionfalse ftp_ssl_connect(string $hostname, int $port = 21, int $timeout = 90)

ftp_ssl_connect は、指定した hostname への明示的な SSL-FTP 接続をオープンします。 サーバー側が SSL-FTP 接続に対応していなかったり、証明書が無効であったりした場合でも、 ftp_ssl_connect は成功します。 そういった場合は、ftp_login を呼んで AUTH FTP コマンドを送信した時点ではじめて、 ftp_login が失敗することになります。

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

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 クラスのインスタンスを返すようになりました。 これより前のバージョンでは、リソース を返していました。

例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