ラボ > PHP:各種エラー、ファイル関連

PHP ディレクトリを作成してファイル保存(mkdir()、file_put_contents())

「file_put_contents()」だと保存先のPATHが無ければエラーになってしまうので、その対策

作成日:2018-02-26, 更新日:2018-07-10

基本

「file_put_contents()」を使うと簡単にファイル保存してくれるんだけど、保存先のディレクトリが無かったらエラーになる。

そのため、「file_put_contents()」をする前に保存先のディレクトリの存在確認をして、無ければ作るっていう処理が必要。

function makeDir($dir){
   $parts = explode('/', $dir);
   $dir = '';
   foreach($parts as $part) {
      if(!is_dir($dir .= "/$part")) {
         mkdir($dir);
      }
   }
}

// 保存先のPATH
$dir = 〇〇〇/〇〇〇/〇〇〇;
makeDir($dir);

// ファイル名
$fileName = '/XXX.txt';

// ファイルの中身
$body = 〇〇〇;

file_put_contents($dir . $fileName, $body, FILE_APPEND | LOCK_EX);

・FILE_APPEND - 上書き保存
・LOCK_EX - ロック処理させる