php 实现ftp
PHP 实现 FTP 功能
PHP 提供了内置的 FTP 函数库,可以方便地实现 FTP 文件上传、下载、删除等操作。以下是实现 FTP 功能的主要步骤和示例代码。
连接 FTP 服务器
使用 ftp_connect() 函数建立与 FTP 服务器的连接,并使用 ftp_login() 进行身份验证。
$ftp_server = "ftp.example.com";
$ftp_username = "username";
$ftp_password = "password";
// 建立连接
$conn_id = ftp_connect($ftp_server) or die("无法连接到 $ftp_server");
// 登录
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
if ($login_result) {
echo "成功连接到 $ftp_server";
} else {
echo "登录失败";
}
上传文件到 FTP 服务器
使用 ftp_put() 函数将本地文件上传到 FTP 服务器。
$local_file = "local_file.txt";
$remote_file = "remote_file.txt";
// 上传文件
if (ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) {
echo "文件 $local_file 上传成功";
} else {
echo "上传失败";
}
从 FTP 服务器下载文件
使用 ftp_get() 函数从 FTP 服务器下载文件到本地。
$local_file = "downloaded_file.txt";
$remote_file = "remote_file.txt";
// 下载文件
if (ftp_get($conn_id, $local_file, $remote_file, FTP_BINARY)) {
echo "文件 $remote_file 下载成功";
} else {
echo "下载失败";
}
列出 FTP 目录内容
使用 ftp_nlist() 或 ftp_rawlist() 函数列出 FTP 服务器上的文件和目录。
$directory = "/";
// 列出目录内容
$files = ftp_nlist($conn_id, $directory);
echo "目录 $directory 中的文件:";
print_r($files);
删除 FTP 服务器上的文件
使用 ftp_delete() 函数删除 FTP 服务器上的文件。
$remote_file = "remote_file.txt";
// 删除文件
if (ftp_delete($conn_id, $remote_file)) {
echo "文件 $remote_file 删除成功";
} else {
echo "删除失败";
}
关闭 FTP 连接
使用 ftp_close() 函数关闭 FTP 连接。
ftp_close($conn_id);
echo "FTP 连接已关闭";
使用 FTP 被动模式
某些 FTP 服务器可能需要使用被动模式。可以通过 ftp_pasv() 函数启用被动模式。
// 启用被动模式
ftp_pasv($conn_id, true);
错误处理
在实际应用中,建议添加错误处理逻辑,例如检查 FTP 函数是否可用。
if (!function_exists('ftp_connect')) {
die("FTP 扩展未启用");
}
完整示例
以下是一个完整的 FTP 文件上传示例:

$ftp_server = "ftp.example.com";
$ftp_username = "username";
$ftp_password = "password";
$local_file = "local_file.txt";
$remote_file = "remote_file.txt";
// 建立连接
$conn_id = ftp_connect($ftp_server) or die("无法连接到 $ftp_server");
// 登录
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
if (!$login_result) {
die("登录失败");
}
// 启用被动模式
ftp_pasv($conn_id, true);
// 上传文件
if (ftp_put($conn_id, $remote_file, $local_file, FTP_BINARY)) {
echo "文件 $local_file 上传成功";
} else {
echo "上传失败";
}
// 关闭连接
ftp_close($conn_id);
通过以上方法,可以轻松实现 PHP 与 FTP 服务器的交互。






