Вы можете попробовать эту вещь, которую я только что вытер (не проверено)
chmod($filename, substr(sprintf('%o', fileperms(dirname($filename))),-4));
http://php.net/manual/en/function.chmod.php
http://php.net/manual/en/function.fileperms.php
Я думаю, что другие функции довольно понятны, или достаточно просты, они не гарантируют ссылку. dirname($filename)
конечно, является каталогом файлов.
Этот substr(sprintf('%o', fileperms(...)),-4)
материал взят со страницы документации:
Пример # 1 Разрешения на отображение в виде восьмеричного значения
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
Это похоже на то, что мы хотели бы использовать, потому что именно этого хочет chmod
, но, возможно, стоит проверить, требуется ли это или нет (возможно, это достаточно умно, чтобы понять это). Я действительно не использовал fileperms
раньше. В большинстве случаев is_writable
- это все, что мне нужно.
Надеюсь, это сработает.