関数の概要
PHPの mkdir 関数は、新しいディレクトリ(フォルダ)を作成するための関数です。ディレクトリを作成する際にパスやパーミッション(アクセス権限)を指定でき、ファイル操作やデータ管理の際に非常に便利に使われます。特にWebアプリケーションでユーザーごとにフォルダを分けたい場合などに役立ちます。
パラメータの説明
- pathname(必須): 作成したいディレクトリのパス(文字列)。相対パスや絶対パスを指定します。
- mode(省略可能): ディレクトリのパーミッション(モード)を8進数で指定します。デフォルトは 0777 で、読み書き実行可能です。ただし、システムのumask設定により実際のパーミッションは異なる場合があります。
- recursive(省略可能): true に設定すると、存在しない親ディレクトリもまとめて作成します。デフォルトは false。
- context(省略可能): ストリームコンテキストを指定できます。通常は使用しません。
戻り値
ディレクトリが正常に作成された場合は true を返します。作成に失敗した場合は false を返すため、エラー処理を行う際は戻り値を必ずチェックしましょう。
使用例
基本的な使い方
<?php
$result = mkdir('new_folder');
if ($result) {
echo 'ディレクトリを作成しました。';
} else {
echo 'ディレクトリの作成に失敗しました。';
}
?>
このコードは、実行ディレクトリ直下に「new_folder」という名前のディレクトリを作成します。成功すればメッセージを表示します。
パーミッションを指定して作成する
<?php
mkdir('secure_folder', 0755);
?>
この例ではパーミッションを 0755 に指定しています。所有者は読み書き実行可能、グループや他は読み取りと実行だけ可能な設定です。
親ディレクトリもまとめて作成する
<?php
mkdir('parent/child/grandchild', 0777, true);
?>
recursive パラメータを true にすることで、存在しない親ディレクトリもまとめて作成します。例えば「parent」「parent/child」が存在しなくても、「grandchild」まで一気に作成可能です。
関連する関数
is_dir– 指定したパスがディレクトリかどうかを調べるrmdir– 空のディレクトリを削除するfile_exists– ファイルまたはディレクトリの存在をチェックするscandir– ディレクトリ内のファイルやディレクトリを一覧表示する
まとめ
mkdir 関数はPHPでディレクトリを作成する際の基本的な関数です。パーミッションの指定や親ディレクトリの再帰的作成など、細かい挙動も設定できるため、用途に合わせて使い分けることができます。ディレクトリ操作を行う際は、作成の成否を戻り値で確認し、安全なファイル管理を心掛けましょう。
