【PHP8.x】mkdir関数の使い方

作成日: 更新日:

mkdir関数は、指定されたパスに新しいディレクトリ(フォルダ)を作成する関数です。この関数は、主にファイルシステム上で新しい格納場所をプログラムから動的に生成したい場合に使用されます。

最も基本的な使い方は、第一引数に作成したいディレクトリのパスを文字列で渡すことです。例えば、mkdir('new_folder'); と記述すると、スクリプトが実行されているカレントディレクトリに new_folder という名前のディレクトリが作成されます。

第二引数には、作成されるディレクトリのパーミッション(権限)を八進数で指定できます。デフォルト値は 0777 ですが、これはすべてのユーザーに読み書き実行の権限を与えるため、セキュリティ上の理由から、通常はより制限された 0755 などを指定することが推奨されます。このパーミッションは、システムのファイルモードマスク(umask)によっても影響を受ける点に注意が必要です。

第三引数 $recursivetrue を指定すると、作成したいディレクトリの親ディレクトリが存在しない場合でも、それらの親ディレクトリも同時に作成されます。この引数を false のままにすると、親ディレクトリが存在しない場合はエラーとなり、ディレクトリは作成されません。

mkdir関数は、ディレクトリの作成に成功した場合に true を、失敗した場合に false を返します。そのため、関数を実行した後は、戻り値を確認して処理の成否を判断することが重要です。既に同名のディレクトリが存在する場合や、指定されたパスへの書き込み権限がない場合など、様々な理由で作成に失敗する可能性があります。エラーメッセージはPHPの警告として出力されますが、falseの戻り値を受け取ることでプログラム的に失敗を検知し、適切にエラーハンドリングを行うことができます。

基本的な使い方

構文(syntax)

mkdir("path/to/my/new/directory", 0755, true);

引数(parameters)

string $directory, int $permissions = 0777, bool $recursive = false, resource $context = null

  • string $directory: 作成するディレクトリのパスを指定する文字列
  • int $permissions = 0777: ディレクトリのパーミッション(権限)を整数で指定します。デフォルトは0777です。
  • bool $recursive = false: trueを指定すると、親ディレクトリが存在しない場合でも再帰的に作成します。デフォルトはfalseです。
  • resource $context = null: ストリームコンテキストを指定するリソースです。通常はnullで問題ありません。

戻り値(return)

bool

指定されたディレクトリを作成できなかった場合は false を返します。

【PHP8.x】mkdir関数の使い方 | いっしー@Webエンジニア