PHP ftp_pasv() 函数打开或关闭被动模式。在被动模式下,数据连接由客户端发起,而不是由服务器发起。如果客户端位于防火墙后面,这非常有用。
注意:此函数只能在成功登录后调用,否则会失败。
语法
ftp_pasv(ftp, enable)
参数
ftp | 必填。 指定要使用的 FTP 连接。 |
enable | 必填。 指定被动模式。可能的值:
|
返回值
成功时返回 true,失败时返回 false。
示例:
下面的示例显示了 ftp_pasv() 的用法。
<?php
//要使用的FTP服务器
$ftp_server = "ftp.example.com";
$old_file = 'oldfile.txt';
$new_file = 'newfile.txt';
//FTP 连接的用户名
$ftp_user = "user";
//用户密码
$ftp_pass = "password";
//建立连接或者连接失败
$ftp = ftp_connect($ftp_server)
or die("Could not connect to $ftp_server");
if($ftp) {
echo "Successfully connected to $ftp_server!\n";
//尝试登录
if(@ftp_login($ftp, $ftp_user, $ftp_pass)) {
echo "Connected as $ftp_user@$ftp_server\n";
//服务器文件所在路径
//需要上传的文件
$server_file = "server_demo.txt";
//本地文件路径
//需要上传
$local_file = "local_demo.txt";
//打开被动模式
ftp_pasv($ftp, true);
//上传指定本地文件
if (ftp_put($ftp, $server_file,
$local_file, FTP_ASCII)) {
echo "Successfully uploaded $local_file\n";
} else {
echo "Error while uploading $local_file\n";
}
} else {
echo "Couldn't connect as $ftp_user\n";
}
//关闭连接
if(ftp_close($ftp)) {
echo "Connection closed successfully!\n";
}
}
?>
上述代码的输出将是:
Successfully connected to ftp.example.com!
Connected as user@ftp.example.com
Successfully uploaded local_demo.txt
Connection closed successfully!