mkdir

関数の概要

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でディレクトリを作成する際の基本的な関数です。パーミッションの指定や親ディレクトリの再帰的作成など、細かい挙動も設定できるため、用途に合わせて使い分けることができます。ディレクトリ操作を行う際は、作成の成否を戻り値で確認し、安全なファイル管理を心掛けましょう。