Выдача PHP mkdir! - PullRequest
       21

Выдача PHP mkdir!

3 голосов
/ 19 мая 2010

Я пытаюсь создать несколько каталогов, таких как:

@mkdir("photos/$cat/$sku", 0777, true)

, он создает первый каталог с разрешениями 0777, но когда он создает второй, использует 000 в качестве перми, поэтому он не может создать третий.

Обойти это, пожалуйста?

Спасибо, Ричард.

Ответы [ 4 ]

1 голос
/ 15 апреля 2013

Я сделал это, и он отлично работает:

    if (!is_dir($path)) {
        $dirs = explode('/', $path);
        $i = 0;
        $subdir = '';
        foreach ($dirs as $dir) {
            if($i > 0){$dir = '/' . $dir;}
            $subdir .= $dir;
            if(!is_dir(DIR_CACHE . $subdir)){@mkdir(DIR_CACHE . $subdir);@chmod(DIR_CACHE . $subdir, 0777);}

            $i++;
        }
    }

Так что все, что вам нужно сделать, это определить свой путь ($ path = photos / $ cat / $ sku)

1 голос
/ 19 мая 2010

Это решило проблему:

$a = @mkdir("photos/$cat/", 0777);
    @chmod("photos/$cat/", 0777);
    $b = @mkdir("photos/$cat/$sku/", 0777);
    @chmod("photos/$cat/$sku/", 0777);

но почему нельзя использовать рекурсив в mkdir?

0 голосов
/ 19 мая 2010

Вы пробовали chmod каталогов?

mkdir("photos/$cat", 0777, true);
chmod("photos", 0777);
chmod("photos/$cat", 0777);
mkdir("photos/$cat/$sku", 0777);
chmod("photos/$cat/$sku", 0777);
0 голосов
/ 19 мая 2010

Уважаемый, это связано с правами пользователя, пожалуйста, проверьте пользователя при создании any dir с помощью функции mkdir,

...