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);
}
ディスカッション
コメント一覧
まだ、コメントがありません