我正在尝试从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只打印空白)。
答案 0 :(得分:1)
如果您的服务器上启用了防火墙或NAT,则必须使用被动模式进行ftp连接
在ftp_rawlist()
之前添加ftp_pasv( $conn_id, true );