PHP 5.4.33 Released


(PHP 4, PHP 5)

ftp_connect建立一个新的 FTP 连接


resource ftp_connect ( string $host [, int $port [, int $timeout ]] )

如果成功返回一个连接标识,失败则返回 FALSE

ftp_connect() 打开一个 FTP 连接,参数 host 为要连接的服务器。host 后面不应以斜线结尾,前面也不需要用 ftp:// 开头。可选参数port 为要连接到的 FTP 器的端口号,如果没有设置或者为0,则会使用默认的端口 21 来连接。

可选参数 timeout 用来设置网络传输的超时时间限制。如果此选项留空,则默认的值为 90 秒。超时时间可以在任何时候通过函数 ftp_set_option()ftp_get_option() 来改变和获取。


参数 timeout 仅适用于 PHP 4.2.0 及以上版本.

Example #1 ftp_connect() 例子



// set up a connection or die
$conn_id ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");


参见 ftp_close()ftp_ssl_connect()

add a note add a note

User Contributed Notes 2 notes

sean at boyercentral dot net
5 years ago
Ever needed to create an FTP connection resource defaulted to a particular dir from a URI? Here's a simple function that will take a URI like, and return an FTP connection resource.

function getFtpConnection($uri)
// Split FTP URI into:
    // $match[0] = ftp://username:password@sld.domain.tld/path1/path2/
    // $match[1] = ftp://
    // $match[2] = username
    // $match[3] = password
    // $match[4] = sld.domain.tld
    // $match[5] = /path1/path2/
preg_match("/ftp:\/\/(.*?):(.*?)@(.*?)(\/.*)/i", $uri, $match);

// Set up a connection
$conn = ftp_connect($match[1] . $match[4] . $match[5]);

// Login
if (ftp_login($conn, $match[2], $match[3]))
// Change the dir
ftp_chdir($conn, $match[5]);

// Return the resource
return $conn;

// Or retun null
return null;
rainer at justchords dot com
10 years ago
Connecting through a firewall also depends on the type. This is an example for the Secure Gateway FTP. First you have to connect to the firewall, then open a session to the destination ftp server. This looks like this:

// Connect to firewall
$conn_id = ftp_connect("");

// Open a session to an external ftp site
$login_result = ftp_login ($conn_id, "", "password");

// Check open
if ((!$conn_id) || (!$login_result)) {
        echo "Ftp-connect failed!"; die;
    } else {
        echo "Connected.";

// turn on passive mode transfers
ftp_pasv ($conn_id, true) ;

... and go on ...
To Top