如何递归使用PHP mkdir函数跳过现有目录并创建新目录?

How to use PHP mkdir function recursively to skip existing directory and to create new one from the string $pathname

// works fine if directories don't exist
mkdir($root_dir . '/demo/test/one', 0775, true);

// It will throw error - Message: mkdir(): File exists
mkdir($root_dir . '/demo/test/two', 0775, true);

What is the solution?

Your code should work as it is, the problem happens when/if you run it for the second time as per @chris85's suggestion you can check if their exists beforehand.

<?php
// given
$root_dir = __DIR__;

// and you want to have these
$dirs = [
    $root_dir . '/demo/test/one',
    $root_dir . '/demo/test/tow',
    $root_dir . '/demo/test/three',
    $root_dir . '/demo/test/four',
    $root_dir . '/demo/test/and/so/on',
];

// just check if they're not exists and then create them
foreach ($dirs as $dir) {
    if (!is_dir($dir)) {
        mkdir($dir, 0775, true);
    }
}

Check with is_dir if the directory already exists:

if(!is_dir($pathname)) { 
   mkdir($pathname, 0775, true);
}