In testing, I have been unable to establish any socket connections (including FTP connections) on shutdown. This is important if you are trying to save the FTP transfer to run after the php script has been executed (using register_shutdown_function). I am unaware of any configuration options that control this, and I have found this affects any socket connections I have tried to establish after shutdown.
The same code works fine if it is executed at runtime, rather than on shutdown. Since I found no documentation of this behavior, I felt it important to note somewhere. May also be useful if this was crosslinked to fsockopen comments as well.
ftp_connect
(PHP 4, PHP 5)
ftp_connect — FTP 接続をオープンする
説明
resource ftp_connect
( string $host
[, int $port
[, int $timeout
]] )
ftp_connect() は、指定した host への FTP 接続をオープンします。
パラメータ
- host
-
FTP サーバのアドレス。このパラメータには、最後のスラッシュや最初の ftp:// をつけてはいけません。
- port
-
このパラメータは接続先のポートを指定します。もし指定しなかったり ゼロを指定したりした場合は、デフォルトの FTP ポートである 21 が用いられます。
- timeout
-
このパラメータは、以降のネットワーク操作時のタイムアウトを指定します。 指定されなかった場合のデフォルト値は 90 秒です。タイムアウトの変更や 参照は、ftp_set_option() や ftp_get_option() を用いていつでも可能です。
返り値
成功した場合に FTP ストリームを、エラー時に FALSE を返します。
例
Example#1 ftp_connect() の例
<?php
$ftp_server = "ftp.example.com";
// 接続を確立します。できなければ終了します。
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
?>
変更履歴
| バージョン | 説明 |
|---|---|
| 4.2.0 | timeout が追加されました。 |
ftp_connect
brandon dot farber at gmail dot com
11-Oct-2005 04:06
11-Oct-2005 04:06
rainer at justchords dot com
11-Nov-2003 08:07
11-Nov-2003 08:07
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("firewall.yournet.com");
// Open a session to an external ftp site
$login_result = ftp_login ($conn_id, "userid@externalhost.com", "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 ...
thomas g.
04-Mar-2003 08:35
04-Mar-2003 08:35
always keep an eye on the ftp_pasv function, if you are behind a firewall or nat'ed and your scripts won't do a listing or put files to the ftp