PHPerKaigi 2024

ftp_connect

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

ftp_connectFTP 接続をオープンする

説明

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

ftp_connect() は、指定した hostname への FTP 接続をオープンします。

パラメータ

hostname

FTP サーバーのアドレス。このパラメータには、最後のスラッシュや最初の ftp:// をつけてはいけません。

port

このパラメータは接続先のポートを指定します。もし指定しなかったり ゼロを指定したりした場合は、デフォルトの FTP ポートである 21 が用いられます。

timeout

このパラメータは、以降のネットワーク操作時のタイムアウトを秒単位で指定します。 指定されなかった場合のデフォルト値は 90 秒です。タイムアウトの変更や 参照は、ftp_set_option()ftp_get_option() を用いていつでも可能です。

戻り値

成功した場合に FTP\Connection クラスのインスタンスを返します。 失敗した場合に false を返します

変更履歴

バージョン 説明
8.1.0 FTP\Connection クラスのインスタンスを返すようになりました。 これより前のバージョンでは、 リソース が返されていました。

例1 ftp_connect() の例

<?php

$ftp_server
= "ftp.example.com";

// 接続を確立します。できなければ終了します。
$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