检索项目时PHP超时

时间:2013-06-17 15:43:57

标签: php ftp

我正在尝试从FTP服务器获取目录列表,该服务器仅通过显式TLS接受FTP连接。

<?php
$ftp_server = "...";
$ftp_user_name = "...";
$ftp_user_pass = "...";

// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
echo $login_result . "<br/>";

// change dir to "data"
$chdir_result = ftp_chdir($conn_id, "data");
echo $chdir_result . "<br/>";
echo ftp_pwd($conn_id) . "<br/>"; 

// get contents of the current directory
$contents = ftp_rawlist($conn_id, ".");

// output $contents
var_dump($contents);

// close the ssl connection
ftp_close($conn_id);
?>

脚本挂起大约一分钟,并提供以下输出:

 1
 1
 /data
 bool(false)

我也试过使用ftp_nlist和print_r但没有用。 (print_r只打印空白)。

1 个答案:

答案 0 :(得分:1)

如果您的服务器上启用了防火墙或NAT,则必须使用被动模式进行ftp连接

在ftp_rawlist()

之前添加
ftp_pasv( $conn_id, true );