mkdir ("dir", 0777) и chmod ("dir", 077) не работают

Если вы не укажете индексы в своем начальном массиве, вы получите регулярные числовые. Массивы должны иметь какой-то уникальный индекс

0
задан matwr 13 March 2019 в 20:31
поделиться

1 ответ

У вас есть типографская ошибка:

$attachment_lot_layer_dir = $attachment_lot_dir . $txtLayer."/";
...
chmod($attachment_lot_layer ,0777);

Эта переменная не существует, так что да, это никогда не сработает. Mkdir из PHP уважает umask в Linux (при условии, что вы работаете в Linux, иначе этого не произойдет), поэтому ваши каталоги не создаются в маске 0777 в соответствии с запросом; однако chmod не учитывает umask, поэтому ваш первый вызов chmod на самом деле меняет маску этого каталога на 0777. Второй вызов не выполняется из-за неверного имени переменной. Отсюда и поведение, которое вы видите.

Кстати, у mkdir есть второй необязательный логический параметр, который позволит вам рекурсивно создать структуру каталогов за один вызов, передав ему полный путь к каталогу (см. здесь ). Вам также следует посмотреть на этот вопрос, чтобы понять, что делать с umask, прежде чем вызывать mkdir, если вы хотите полностью избежать последующих вызовов chmod.

0
ответ дан parttimeturtle 13 March 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: