PHPでフォルダパスを再帰的に作成する方法


  1. mkdir関数を使用する方法:

    function createFolderPath($path) {
    if (!file_exists($path)) {
        mkdir($path, 0777, true);
    }
    }

    この方法では、指定されたパスが存在しない場合にのみフォルダを作成します。第2引数のパーミッションは必要に応じて変更してください。

  2. パスを分割して作成する方法:

    function createFolderPath($path) {
    $folders = explode('/', $path);
    $currentPath = '';
    foreach ($folders as $folder) {
        $currentPath .= $folder . '/';
        if (!file_exists($currentPath)) {
            mkdir($currentPath, 0777);
        }
    }
    }

    この方法では、指定されたパスをスラッシュで分割し、各セグメントごとにフォルダを作成します。

  3. RecursiveDirectoryIteratorを使用する方法:

    function createFolderPath($path) {
    $iterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS);
    $folders = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
    foreach ($folders as $folder) {
        if (!$folder->isDir()) {
            mkdir($folder->getPathName());
        }
    }
    }

    この方法では、RecursiveDirectoryIteratorを使用して指定されたパス内のすべてのフォルダを再帰的に取得し、フォルダが存在しない場合に作成します。

これらの方法を使用することで、PHPでフォルダパスを再帰的に作成することができます。必要に応じて、これらのコード例をカスタマイズして使用してください。