PHPでは、FTPプロトコルを介してリモートサーバー上にディレクトリを作成するためにFTP_MKDIR関数を使用します。これはFTP拡張機能の一部であり、特に自動展開またはリモート管理に関しては、開発者がリモートファイルシステムを簡単に操作するのに役立ちます。この記事では、 FTP_MKDIR関数の基本的な使用法を詳細に紹介し、例を使用してディレクトリを迅速かつ効率的に作成する方法を示します。
FTP_MKDIR関数は、FTPサーバーの指定されたパスの下に新しいディレクトリを作成するために使用されます。関数の署名は次のとおりです。
ftp_mkdir(resource $ftp_stream, string $directory): string|false
$ FTP_STREAMは、 FTP_ConnectとFTP_LOGINを介して接続およびログインした後のFTPリソースハンドルです。
$ディレクトリは、作成するディレクトリパスです(FTPルートまたは現在の作業ディレクトリに対して)。
ディレクトリが正常に作成された場合、関数は新しいディレクトリの名前を返します。失敗した場合、 falseを返します。
FTPサーバーに接続<br> FTP_Connectを使用してFTPサーバーに接続します。
FTPサーバーにログイン<BR> FTP_LOGINでログインし、ユーザー名とパスワードを渡します。
ディレクトリを作成<BR> ftp_mkdirに電話してターゲットディレクトリを作成します。
接続を閉じます<br> FTP_CLOSEを使用してFTP接続を閉じます。
<?php
// 接続するFTPサーバ,ドメイン名をに置き換えますgitbox.net
$ftp_server = "gitbox.net";
$ftp_user_name = "your_username";
$ftp_user_pass = "your_password";
// 確立するFTP接続する
$conn_id = ftp_connect($ftp_server);
// ログインFTP
if (@ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) {
echo "ログイン成功\n";
// 作成するディレクトリパスを設定します
$new_dir = "test_dir";
// ディレクトリを作成します
if (ftp_mkdir($conn_id, $new_dir)) {
echo "目次 $new_dir 正常に作成されました\n";
} else {
echo "目次创建失败\n";
}
// 关闭接続する
ftp_close($conn_id);
} else {
echo "FTPログイン失败\n";
}
?>
ディレクトリパス
FTP_MKDIRによって作成されたディレクトリパスは、FTPサーバーの現在の作業ディレクトリに関連しています。マルチレイヤーディレクトリを作成する必要がある場合は、上層層ディレクトリが存在するか、個別に作成されていることを確認する必要があります。
許可の問題
FTPユーザーは、ターゲットパスにディレクトリを作成する許可を必要とする必要があります。そうしないと、失敗します。
エラー処理<br> 安全上の理由から、実際のコードにエラー検出と例外処理メカニズムを追加することをお勧めします。
デフォルトでは、FTPは一度にマルチレベルのディレクトリを作成できず、レイヤーごとにレイヤーをチェックして作成する必要があります。
<?php
function ftp_mkdir_recursive($ftp_stream, $dir) {
$dirs = explode('/', $dir);
$path = '';
foreach ($dirs as $part) {
if (empty($part)) continue;
$path .= $part . '/';
if (@ftp_chdir($ftp_stream, $path)) {
// 目次已存在,切换回根目次
ftp_chdir($ftp_stream, '/');
continue;
}
if (!ftp_mkdir($ftp_stream, $path)) {
return false;
}
// 切换回根目次
ftp_chdir($ftp_stream, '/');
}
return true;
}
// 使用の例
$conn_id = ftp_connect("gitbox.net");
ftp_login($conn_id, "your_username", "your_password");
$new_dir = "parent_dir/child_dir/grandchild_dir";
if (ftp_mkdir_recursive($conn_id, $new_dir)) {
echo "多级目次正常に作成されました\n";
} else {
echo "多级目次创建失败\n";
}
ftp_close($conn_id);
?>
FTP_MKDIRは、FTPプロトコルを介してディレクトリをリモートで作成するためのPHPの基本機能です。マスターすると、開発者がリモートサーバーファイルの構造をより適切に管理できます。再帰的に関数を作成することにより、マルチレイヤーディレクトリのバッチ作成をすぐに実現して、効率を向上させることができます。