PHP | ファイルやディレクトリが存在しない場合に新規作成する方法

2021-05-05PHP ファイル・ディレクトリ,PHP

PHP | ファイルやディレクトリが存在しない場合に新規作成する方法

PHPのtouch()やfile_put_contents()、mkdir()を使ってファイルやディレクトリの存在を確認して、存在しなかった場合に新規作成するサンプルコードです。

touch()でファイルを作成する

touch()関数は最終更新日・時刻を更新する為の関数ですが、「指定パスに同名のファイルが存在しなければ新規作成」という処理を実行します。

ファイルの中身は指定できません、ファイルが存在しない場合は空のファイルを作成します。

touch('data.txt');

第二引数にはファイルの最終更新日を指定可能です。
未指定の場合は現在時刻が代入されます。

file_put_contents()でファイルを作成する

ファイルの新規作成時と同時にデータを書き込む場合はfile_put_contents()が利用可能です。

file_put_contents()はファイルが存在しない場合は新規作成、既に存在する場合は上書き処理となります。

file_put_contents('data/1.txt', '文字列', LOCK_EX);

上書き処理を実行しない場合はFILE_APPENDを指定して追記モードにする事が可能です。

file_put_contents('data.txt', '文字列', FILE_APPEND | LOCK_EX);

存在する場合の処理を変更する場合は、file_exists()を利用して分岐処理を実装します。

if (!file_exists('data.txt')) {
	file_put_contents('data.txt', '文字列', LOCK_EX);
}else{
	//ファイルが存在する場合の処理
}

ディレクトリを作成する

mkdir()を利用してディレクトリを新規作成します。
作成するディレクトリの第二引数にはパーミッション値を指定します。

mkdir('dir', 0777);

ディレクトリが既に存在するかどうか判別してから、新規作成を実行します。

if (!file_exists('dir')) {
	mkdir('dir', 0777);
}