# ftp_ssl_connect

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

ftp_ssl_connect — 打开 SSL-FTP 连接

### 说明

ftp_ssl_connect ( string `$host` [, int `$port` = 21 [, int `$timeout` = 90 ]] ) : resource

ftp_ssl_connect() 显式的打开一个到 `host` 的安全 FTP 连接（SSL-FTP）。 即使服务器未配置 SSL-FTP，或者服务器的证书无效，ftp_ssl_connect() 函数也会成功的建立到服务器的连接。直到调用 ftp_login() 函数的时候， 客户端才会发送对应的 AUTH FTP 命令，此时，如果服务器未配置 SSL-FTP 或者整数无效， ftp_login() 函数会失败。

> Note: 为何本函数有可能不存在？

> 只有 PHP 构建时同时包含了 ftp 模块 和 OpenSSL 模块时， ftp_ssl_connect() 函数才可用。 也就是说，在 Windows 平台上，官方发布的 PHP 构建中本函数不可用。 如果需要在 Windows 平台使用本函数，需要自行编译 PHP。

> Note:

> ftp_ssl_connect() 不是用来连接 sFTP 服务的。 要在 PHP 中使用 sFTP，请参见 ssh2_sftp()。

### 参数

`host`

  FTP 服务器地址。 此参数末尾不可以有斜线，开头也不可以有 ftp://。

`port`

  要连接的端口。如果省略此参数或设置为 0，将使用 FTP 默认端口 21。

`timeout`

  此参数设置所有后续网络操作的超时时长。 如果省略，默认值为 90 秒。 可以使用 ftp_set_option() 和 ftp_get_option() 函数随时读取或设置超时时长。

### 返回值

操作成功返回 SSL-FTP 流，操作失败返回 `FALSE` 。

### 更新日志

版本 | 说明
--- | ---
5.2.2 | 以前版本中，如果无法使用 SSL 连接，将会返回一个非 SSL 的连接， 在 5.2.2 版本中修改为返回 `FALSE`

### 范例

Example #1 ftp_ssl_connect() 函数例程

    <?php

    // 建立基础 SSL 连接
    $conn_id = ftp_ssl_connect($ftp_server);

    // 使用用户名和密码登录
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    if (!$login_result) {
        // 在这种情况下，PHP 会发生 E_WARNING 级别的告警消息
        die("can't login");
    }

    echo ftp_pwd($conn_id); // /

    // 关闭 ssl 连接
    ftp_close($conn_id);
    ?>

### 参见

- ftp_connect() - 建立一个新的 FTP 连接