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

2019年1月8日ファイル操作

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

空ファイルの新規作成

ファイルの新規作成時は空ファイルで良ければtouch()関数が「存在しなければ新規作成」なので利用できます

以下のサンプルではdataディレクトリ内に1というテキストファイルが無い場合に新規作成します

touch('./data/1.txt');

中身のあるファイルの新規作成

ファイルの新規作成時と同時にデータを書き込む場合はfile_put_contents()が利用できます
file_put_contents()も存在確認をして、無い場合は新規作成となります

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

上記の指定だと存在した場合、上書きになるのでFILE_APPENDを指定して追記モードにする事が可能です

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

存在する場合は別のファイル名を指定したい場合などは、file_exists()を利用して分岐します

if (!file_exists('data/1.txt')) {
file_put_contents('data/2.txt','文字列', LOCK_EX);
}

ディレクトリの新規作成

以下のサンプルではimagesディレクトリ内に1というディレクトリが無い場合に新規作成します

if (!file_exists('images/1')) {
mkdir('images/entry/1', 0777);
}