使用PHP连接到FTP服务器

从版本4开始,PHP内置了FTP连接功能,使通过FTP传输文件非常容易。

所涉及的主要功能被调用ftp_connect(),该功能将FTP主机作为参数并尝试连接到该主机。如果需要,还可以将端口和超时限制添加到功能中。

建立连接后,ftp_login()将使用该功能尝试登录。如果成功,此函数将返回true;如果失败,则返回false。下面的代码段将尝试连接并登录到FTP服务器,如果任何步骤失败,则该代码将打印出一条消息,说明是这样。

$host= 'ftp.example.com';
$user = 'notarealusername';
$password = 'notarealpassword';
$ftpConn = ftp_connect($host);
$login = ftp_login($ftpConn,$user,$password);
// 检查连接
if ((!$ftpConn) || (!$login)) {
 echo 'FTP connection has failed! Attempted to connect to '. $host. ' for user '.$user.'.';
} else{
 echo 'FTP connection was a success.';
 $directory = ftp_nlist($ftpConn,'');
 echo '<pre>'.print_r($directory, true).'</pre>';
}
ftp_close($ftpConn);

该ftp_close()函数获取资源标识符并关闭它。如果代码失败,这是打印出来的内容。

FTP connection has failed! Attempted to connect to ftp.example.com for user notarealusername.

如果连接成功,则脚本将尝试检索根目录的内容,这是使用ftp_nlist()函数完成的。这是代码成功连接到FTP服务器时可能会发现的典型示例。

FTP connection was a success.
Array
(
 [0] => cgi-bin
 [1] => logfiles
 [2] => html
)

有许多不同的FTP功能可用,涵盖了希望任何FTP程序都能完成的主要工作。您可能使用的主要方法是ftp_get()下载文件,ftp_put()上传文件和ftp_nlist()查看目录的内容。还有一个称为的功能ftp_chmod(),可让您设置FTP服务器上目录的权限。