関数の概要
PHPの mkdir 関数は、新しいディレクトリを作成するための関数です。サーバー上でフォルダを作成したいときに使い、ファイルの管理や整理をプログラムから自動化したい場合に便利です。
パラメータの説明
pathname(必須):作成したいディレクトリのパス(絶対パスまたは相対パス)を文字列で指定します。mode(任意):ディレクトリに設定するパーミッション(アクセス権)を8進数で指定します。デフォルトは0777(全権限)です。recursive(任意):親ディレクトリが存在しない場合に、再帰的に作成するかを指定するブール値です。デフォルトはfalseです。context(任意):ストリームコンテキストリソースを指定します。通常は使用しません。
戻り値
ディレクトリの作成に成功すると true、失敗した場合は false を返します。失敗の原因は、すでに同名のファイルやディレクトリが存在する権限不足などが考えられます。
使用例
基本的な使い方
<?php
$dir = 'test_dir';
if (mkdir($dir)) {
echo "ディレクトリ '$dir' を作成しました。";
} else {
echo "ディレクトリの作成に失敗しました。";
}
?>
単純に現在のディレクトリに「test_dir」という名前のフォルダを作成します。
パーミッションを指定して作成する例
<?php
$dir = 'secure_dir';
// アクセス権を 0755 に設定
if (mkdir($dir, 0755)) {
echo "パーミッション付きでディレクトリを作成しました。";
} else {
echo "作成失敗";
}
?>
ディレクトリのパーミッションを「所有者は全権限、グループと他は読み取り・実行権限」の 0755 に設定して作成します。
再帰的に親ディレクトリも作成する例
<?php
$dir = 'parent_dir/child_dir/grandchild_dir';
if (mkdir($dir, 0777, true)) {
echo "親ディレクトリも含めて再帰的に作成しました。";
} else {
echo "作成失敗";
}
?>
存在しない親ディレクトリを含むパスをすべて自動で作成できます。recursive を true に設定することがポイントです。
関連する関数
rmdir:空のディレクトリを削除するis_dir:指定したパスがディレクトリかどうかを調べるunlink:ファイルを削除するscandir:ディレクトリ内のファイルやフォルダ一覧を取得する
まとめ
mkdir はPHPで新しいディレクトリを作成する際に使う基本的な関数です。パーミッション設定や親ディレクトリの自動作成にも対応しているため、実務においてファイル操作を行う際にとても便利です。エラーチェックをしっかり行い、権限設定に注意して安全に使いましょう。
