PHPでは関数を使用してフォルダを簡単に作成することができます。
この記事では、
・mkdir関数の使用方法
・フォルダの作成有無を判定する方法
という基本的な内容から、
・フォルダの更新日時を取得する方法
・階層フォルダを作成する方法
などの応用的な使い方に関しても解説していきます。
今回はそんなフォルダの作成方法について、わかりやすく解説します!
フォルダを作成する
ここでは、mkdir関数を使用してフォルダ(ディレクトリ)を作成する方法を紹介します。
mkdir関数を使用する
PHPでフォルダ(ディレクトリ)を作成するためには、mkdir関数を使用します。
bool mkdir(string $パス/フォルダ名 [, int $mode [, bool $recursive [, resource $context]]]);
mkdir関数は、第一引数にフォルダのパスと作成するフォルダ名を指定します。
第二引数の$modeには作成するディレクトリのモード(パーミッション)を指定します。モードは指定しない場合、デフォルトで0777が指定されます。これはパーミッションにおいて、最も緩やかなアクセス制限になります。
パーミッションの詳細については、以下を参考にしてください。
http://php.net/manual/ja/function.chmod.php
(Windowsの場合は、$modeは指定しても無視されます)
第三引数の$recursiveには、入れ子構造のディレクトリ作成の許可フラグを指定し、第四引数の$contextにはオプションとして作成したストリームを指定します。
以下にmkdir関数を使用して、フォルダを作成する方法を記述します。
<?php mkdir('/Users/Shared/PHP/mydir', 0700); ?>
サンプルでは、パスに「/Users/Shared/PHP/」、作成するフォルダ(ディレクトリ)に「mydir」を指定し、第二引数のモード(パーミッション)には「0700」を指定しています。
フォルダが作成できたか判定する
フォルダが正常に作成できたか、判定するためにはif文の中でmkdir関数を使用します。
mkdir関数は戻り値にbool型の値を返しますので、フォルダの作成可否を判定することが可能です。
以下にフォルダが作成できたか、判断する方法を記述します。
<?php if (mkdir('/Users/Shared/PHP/mydir', 0700)){ echo 'フォルダを作成しました。'; }else{ echo 'フォルダの作成が失敗しました。'; } ?>
実行結果 フォルダを作成しました。
フォルダの更新日時を取得する
フォルダの更新日時を取得する場合は、ファイルの更新日時を調べるfilemtime関数を使用して取得することができます。
int filemtime ( $パス/フォルダ名またはファイル名 );
filemtime関数は、第一引数にパス/フォルダ名またはフォルダ名のみを指定します。
以下にfilemtime関数を使用して、フォルダの更新日時を使用する方法を記述します。
<?php $dirname = '/Users/Shared/PHP/mydir'; //filemtimeでフォルダの更新日時を取得する $dirtime = filemtime($dirname); echo '更新日時:'. date("Y/m/d/ H:i:s.", $dirtime); ?>
実行結果 更新日時:2017/05/12/ 01:10:51.
filemtime関数は、戻り値にUnixタイムスタンプが返されますので、日付を処理するdate関数を使用して年月日時分秒のフォーマットに変更することができます。
なお、PHPのdate関数については以下の記事で詳しく解説しています。
階層フォルダを作成する
階層のフォルダを一括で作成するためには、mkdir関数の第三引数の再帰的にフォルダを作成するフラグをTRUEで指定します。
以下に階層フォルダを作成する方法を記述します。
<?php // 複数階層のフォルダを作成する if (mkdir('/Users/Shared/PHP/mydir1/mydir2/mydir3', 0755, true)){ echo 'フォルダを作成しました。'; }else{ echo 'フォルダの作成が失敗しました。'; } ?>
実行結果 フォルダを作成しました。
サンプルのように第三引数をtrueに指定すれば、深い階層のフォルダも一括で作成することができます。
まとめ
ここでは、PHPでフォルダを作成する簡単な方法から、フォルダ作成の有無を判定する方法、フォルダの更新日時や階層フォルダを作成する方法までご説明しました。
フォルダの作成はmkdir関数を使用すれば簡単に作成することができますので、この機会にぜひ覚えておきましょう。
もしフォルダの作成方法を忘れてしまったら、この記事を思い出してくださいね!