ftp_ssl_connect

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

ftp_ssl_connectУстанавливает соединение с FTP-сервером через SSL

Описание

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

ftp_ssl_connect() устанавливает SSL соединение с FTP-сервером, заданным аргументом host.

Замечание: Почему эта функция может быть не определена

Функция ftp_ssl_connect() доступна только в том случае, если PHP был собран с поддержкой OpenSSL. Это означает что под Windows эта функция не будет определена в официальном дистрибутиве. Чтобы использовать эту функцию под Windows, вам придется собрать PHP самостоятельно для включения поддержки OpenSSL.

Замечание:

ftp_ssl_connect() не предназначена для использования по протоколу sFTP. Для использования sFTP из PHP смотрите функцию ssh2_sftp().

Список параметров

host

Адрес FTP-сервера. Этот параметр не должен содержать слеши в конце и префикс ftp:// в начале.

port

Задает порт, на котором устанавливается соединение. Если равен нулю или опущен, по умолчанию используется стандартный для протокола FTP порт 21.

timeout

Задает таймаут для всех операций с этим соединением. По умолчанию таймаут устанавливается в 90 секунд. Получить и установить значение таймаута можно также с помощью функций ftp_set_option() и ftp_get_option().

Возвращаемые значения

Возвращает SSL-FTP поток в случае успеха, или FALSE при возникновении ошибки.

Список изменений

Версия Описание
5.2.2 Эта функция теперь возвращает FALSE, если не удалось установить SSL-соединение, вместо прежнего поведения, когда устанавливалось обычное, не-SSL соединение.

Примеры

Пример #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);

echo 
ftp_pwd($conn_id); // /

// закрытие ssl-соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_connect() - Устанавливает соединение с FTP-сервером

Коментарии

Something that isn't mentioned above is that although ftp_ssl_connect may be available and will return an FTP stream it may not be usable. Take the following code (FTP login credentials are obviously set elsewhere):

<?php
var_dump
(function_exists('ftp_ssl_connect'));
if(
function_exists('ftp_ssl_connect'))
{
   
$ftp_connection = @ftp_ssl_connect($this->ftp_host);
}
else
{
   
$ftp_connection = @ftp_connect($this->ftp_host);
}
var_dump($ftp_connection);
if(
$ftp_connection)
{
   
ftp_login($ftp_connection$this->ftp_user$this->ftp_password);
}
// output: bool(true) resource(71) of type (FTP Buffer)
?>

From this you'd assume everything would work, ftp_ssl_connect is available and you have a connection. However, once you get to ftp_login, you could get this:

Warning [2] ftp_login() [function.ftp-login]: AUTH not understood

This is because the server is not configured to understand the encrypted details, even though the function is available and an SSL-FTP stream was opened.

If you are trying to use ftp_ssl_connect make sure you check if you can login after using it, and if not, connect again with standard ftp_connect.

Hope this is of use.
2011-12-19 06:27:57
http://php5.kiev.ua/manual/ru/function.ftp-ssl-connect.html

    Поддержать сайт на родительском проекте КГБ