ftp_connect

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

ftp_connectFTP 接続をオープンする

説明

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

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

パラメータ

hostname

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

port

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

timeout

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

返り値

成功した場合に FTP ストリームを、エラー時に false を返します。

例1 ftp_connect() の例

<?php

$ftp_server 
"ftp.example.com";

// 接続を確立します。できなければ終了します。
$conn_id ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 

?>

参考

add a note add a note

User Contributed Notes 3 notes

up
11
sean at boyercentral dot net
15 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;
}
?>
up
0
rafael at gawenda dot es
3 years ago
Sean's example is wrong, because it includes the protocol match, so result would be php_network_getaddresses: getaddrinfo failed: Name or service not known
up
-1
edouard at e-gaulue dot com
3 years ago
On server with multiple network card, is there a way to choose the interface to use ?
To Top