PHP 5.5.16 is released

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connectOuvre une connexion FTP sécurisée avec SSL

Description

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

ftp_ssl_connect() ouvre explicitement une connexion FTP sécurisée avec SSL sur l'hôte host spécifié.

Note: Pourquoi cette fonction peut ne pas exister ?

ftp_ssl_connect() n'est disponible que si le module ftp et le support OpenSSL sont compilés statiquement dans PHP, cela signifie que, sous Windows, cette fonction sera indéfinie dans la version officielle de PHP. Afin d'utiliser cette fonction sous Windows, vous devez compiler vos propres binaires PHP.

Note:

ftp_ssl_connect() n'est pas prévu pour fonctionner avec sFTP. Pour utiliser sFTP avec PHP, reportez-vous à la fonction ssh2_sftp().

Liste de paramètres

host

L'adresse FTP du serveur. Ce paramètre ne doit pas comporter de slash final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un port alternatif de connexion. S'il est omis ou défini à zéro, alors le port par défaut FTP, 21, sera utilisé.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations sur le réseau. S'il est omis, la valeur par défaut sera de 90 secondes. Ce délai de connexion peut être modifié et consulté à tout moment avec les fonctions ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux SSL-FTP en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
5.2.2 Cette fonction retourne FALSE lorsqu'elle ne peut pas utiliser une connexion SSL, au lieu d'utiliser à la place une connexion non-SSL.

Exemples

Exemple #1 Exemple avec ftp_ssl_connect()

<?php

// Mise en place d'une connexion basique
$conn_id ftp_ssl_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

echo 
ftp_pwd($conn_id); // /

// Fermeture de la connexion SSL
ftp_close($conn_id);
?>

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
3
mmm3567 at gmail dot com
2 years ago
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.
To Top