PHPerKaigi 2024

ftp_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_connect建立新 FTP 连接

说明

ftp_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_connect() 将会建立 FTP 连接到指定的服务器 hostname

参数

hostname

要连接的服务器地址。此参数后面不应以斜线结尾,前面也不需要用 ftp:// 开头。

port

为要连接到的 FTP 器的端口号,如果没有设置或者为 0,则会使用默认的端口 21 来连接。

timeout

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

返回值

成功时返回 FTP\Connection 实例, 或者在失败时返回 false

更新日志

版本 说明
8.1.0 现在返回 FTP\Connection 实例;之前返回 resource

示例

示例 #1 ftp_connect() 示例

<?php

$ftp_server
= "ftp.example.com";

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

?>

参见

add a note

User Contributed Notes 1 note

up
18
sean at boyercentral dot net
14 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 ftp://username:password@subdomain.example.com/path1/path2/, and return an FTP connection resource.

<?php
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;
}
?>
To Top