PHP
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ftp_systype> <ftp_size
Last updated: Fri, 03 Jul 2009

view this page in

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connectOpens an Secure SSL-FTP connection

Description

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

ftp_ssl_connect() opens a SSL-FTP connection to the specified host .

Note: Why this function may not exist
ftp_ssl_connect() is only available if both the ftp module and the OpenSSL support is built statically into php, this means that on Windows this function will be undefined in the official PHP builds. To make this function available on Windows you must compile your own PHP binaries.

Parameters

host

The FTP server address. This parameter shouldn't have any trailing slashes and shouldn't be prefixed with ftp://.

port

This parameter specifies an alternate port to connect to. If it is omitted or set to zero, then the default FTP port, 21, will be used.

timeout

This parameter specifies the timeout for all subsequent network operations. If omitted, the default value is 90 seconds. The timeout can be changed and queried at any time with ftp_set_option() and ftp_get_option().

Return Values

Returns a SSL-FTP stream on success or FALSE on error.

Changelog

Version Description
5.2.2 The function was changed to return FALSE when it can't use an SSL connection, instead of fallbacking to a non-SSL one as previously.

Examples

Example #1 ftp_ssl_connect() example

<?php

// set up basic ssl connection
$conn_id ftp_ssl_connect($ftp_server);

// login with username and password
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

echo 
ftp_pwd($conn_id); // /

// close the ssl connection
ftp_close($conn_id);
?>

See Also



ftp_systype> <ftp_size
Last updated: Fri, 03 Jul 2009
 
add a note add a note User Contributed Notes
ftp_ssl_connect
steveh at i12 dot com
01-Apr-2009 08:32
I don't believe the ftps implementation handles implicit ssl connections, having spent 2 days messing to get it to work in both php4 and 5.  There is no mention of explicit vs implicit in the docs which backs this up.

I therefore ended up using an alternative ftp implementation class to successfully connect to an implicit ssl ftp server.

It is a php5 class. You can download the class file here:
http://kacke.de/php_samples/source.php?f=ftp.cls.php

It is fairly self explanatory if you read the public functions.  Here's a usage example:
<?php
include "ftp.cls.php";

$ftpconn= new ftp();

$ftpconn->debug=true;   //Comment out or set to false for silent mode!

// set up basic ssl connection
if(!$ftpconn->ftp_connect("your_ftps_host.com",990,"SSL")) //990 is the standard implicit ssl port
{
    echo
"Error: <br/>Unable to open SSL connection<br />";
} else {
   
// login with username and password       
   
if($ftpconn->ftp_login("username", "password"))
    {
       
//Change the directory
       
$ftpconn->ftp_chdir("/parent/child");
       
//Upload the file
       
$ftpconn->ftp_put("remotenamehere.txt",
                        
"pathtofile/localfilenamehere.txt");
       
$ftpconn->ftp_quit();
        echo
"Upload Done.<br />";
    } else {
        echo
"Error:<br/>Unabe to login in.<br />";
    }
}
?>
Thank you Topi for getting me out of a hole!
contact dot removethis at deciacco dot com
16-Oct-2007 05:00
For those of you that see this for the first time and might be discouraged from having to compile PHP, please take a look at this page: http://www.deciacco.com/blog/archives/124
none
09-Feb-2005 03:24
I wasted a lot of time trying to get FTP over SSL/TLS working in PHP on Windows OS (with precompiled SSL PHP-packages etc.). However, it never worked for me.

I'm happy I found a nice solution now:
using "MovieIt Freely", a commandline FTP-Client, freeware at http://www.standardnetworks.com.
A nice tool that worked on all SSL/TLS-enabled FTP-Server for me.

Its easy to get it to interact with PHP:
a) Create a temporary batch-txt-file and therein write all your commands to be performed
b) then launch the program with exec() or backticks, let MovieIt read the batch-txt-file and forward/write down the log/results in a temporary results-txt-file
c) Finally read the log/results-txt-file

Check the manual for details.

Hope it helps. Cheers!
philip at php dot net
16-Jul-2004 01:08
Since ftp_ssl_connect() requires SSL compiled into PHP, Windows users will need to compile their own PHP this way or download it from another source.  Here's one such (and trusted) source:
* http://ftp.emini.dk/pub/php/win32/openssl/
moolder at gmx dot net
22-Jan-2004 02:56
Just remember: SSL FTP != SFTP

Differences: an SSL FTP connects on port 990, and you need an ftp server which will support this (seems like none in the SuSE linux distribution do). Even if you get this function to work, and it connects ok to a normal FTP server on port 21, data WILL NOT BE ENCRYPTED. If you don't believe me, go sniff it yourself!

ftp_systype> <ftp_size
Last updated: Fri, 03 Jul 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites