PHP ftp_mkdir() 函数用于在FTP服务器上创建一个新目录。
ftp_mkdir(resource $ftp, string $directory): string|false
| 参数 | 描述 |
|---|---|
ftp |
必需。FTP连接的标识符,由ftp_connect()或ftp_ssl_connect()返回 |
directory |
必需。要创建的目录名称。可以是相对路径或绝对路径 |
false<?php
// 连接FTP服务器
$ftp_server = "ftp.example.com";
$ftp_user = "username";
$ftp_pass = "password";
$ftp_conn = ftp_connect($ftp_server) or die("无法连接到 $ftp_server");
// 登录
$login = ftp_login($ftp_conn, $ftp_user, $ftp_pass);
if (!$login) {
die("登录失败");
}
// 创建目录
$dir_name = "new_directory";
if (ftp_mkdir($ftp_conn, $dir_name)) {
echo "目录 '$dir_name' 创建成功";
} else {
echo "创建目录失败";
}
// 关闭连接
ftp_close($ftp_conn);
?>
<?php
// 建立FTP连接
$ftp_conn = ftp_connect('ftp.example.com');
ftp_login($ftp_conn, 'user', 'pass');
// 创建嵌套目录
$new_dir = 'uploads/images/2024';
if (ftp_mkdir($ftp_conn, $new_dir)) {
echo "嵌套目录创建成功: $new_dir";
} else {
// 尝试逐级创建
$parts = explode('/', $new_dir);
$current_path = '';
foreach ($parts as $part) {
if (!empty($part)) {
$current_path .= ($current_path ? '/' : '') . $part;
if (!@ftp_chdir($ftp_conn, $current_path)) {
if (!ftp_mkdir($ftp_conn, $current_path)) {
echo "创建目录 '$current_path' 失败";
break;
}
echo "创建目录: $current_path
";
}
}
}
}
ftp_close($ftp_conn);
?>
<?php
function createFtpDirectory($ftp_conn, $directory) {
// 检查目录是否已存在
if (@ftp_chdir($ftp_conn, $directory)) {
ftp_chdir($ftp_conn, '..'); // 返回上级目录
return "目录 '$directory' 已存在";
}
// 尝试创建目录
$result = ftp_mkdir($ftp_conn, $directory);
if ($result !== false) {
return "目录创建成功: " . $result;
} else {
// 检查连接是否有效
if (!ftp_systype($ftp_conn)) {
return "FTP连接已断开";
}
return "创建目录失败,请检查权限";
}
}
// 使用示例
$ftp = ftp_connect('localhost');
if ($ftp === false) {
die("无法连接FTP服务器");
}
if (ftp_login($ftp, 'user', 'pass')) {
echo createFtpDirectory($ftp, 'test_folder');
ftp_close($ftp);
} else {
echo "登录失败";
}
?>
ftp_pasv()启用被动模式@运算符可以抑制错误,但建议使用适当的错误处理机制ftp_rmdir() - 删除FTP服务器上的目录ftp_chdir() - 改变FTP服务器上的当前目录ftp_pwd() - 返回当前目录名ftp_nlist() - 列出FTP目录中的文件