mkdir() в php не устанавливает для папки разрешение 0777

Возможный дубликат:
PHP-код mkdir('images','0777') создает папку с правами доступа 411! Почему?

Я пытаюсь создать папку на своем сервере с помощью php, я пробовал это, и это не работает, я установил для нее значение 411. Кто-нибудь знает, почему это происходит?

mkdir($create_path, "0777");

Я также пробовал chmod, но я получаю сообщение об ошибке безопасного режима.

chmod($create_path, '0777');

person Rickstar    schedule 09.11.2010    source источник
comment
Также дублируйте stackoverflow.com/questions/4061224/ stackoverflow.com/questions/4061224/ stackoverflow.com/questions/4061224/ и другие.   -  person The Archetypal Paul    schedule 09.11.2010


Ответы (2)


И chmod(), и mkdir() принимают целое число для $mode. В этом случае проще использовать восьмеричные числа:

mkdir('/path', 0777); // using octal
mkdir('/path', 511);  // same thing as previous but using decimal

Будьте осторожны и убедитесь, что перед вашим режимом (например, 777) стоит 0, чтобы синтаксический анализатор использовал восьмеричное число. Отсутствие 0 приведет к использованию десятичного числа и даст другой результат.

Поскольку «0777» (строка) преобразуется в десятичное число 777, это не тот же режим, что и 0777.

person netcoder    schedule 09.11.2010

Второй параметр должен быть целым числом, как вы можете видеть здесь, так что используйте этот

мкдир ($ create_path, 0777); // должно работать!

person vaske    schedule 09.11.2010