php mkdir() не работает правильно

У меня есть этот код:

$a ="/Assets/ProductImages/oa/91/2239754/6/5151010073180_1_org_zoom.jpg";
$b ="/home/cfnic/domains/modmania.ir/public_html/image/Assets/ProductImages/oa/91/2239754/6/5151010073180_1_org_zoom.jpg";

$path = '';

$directories = explode('/', dirname($a));

foreach ($directories as $directory) {
    $path = $path . '/' . $directory;

    if (!is_dir('/home/cfnic/domains/modmania.ir/public_html/image/' . $path)) {
        mkdir('/home/cfnic/domains/modmania.ir/public_html/image/' . $path, 0777,true);
    }
}

это только создать каталог (активы) и (ProductImages), что я делаю неправильно?????

1 ответ

Если ваша цель - создать каталоги рекурсивно, вы можете использовать mkdir один раз. Это прототип функции взят из руководства по PHP

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

так что единственное, что вам действительно нужно, это:

mkdir('/home/cfnic/domains/modmania.ir/public_html/image'.dirname($a), 0777,true);

без foreach петля.

Другие вопросы по тегам