0

我正在尝试构建一个函数,使用phpRecursiveDirectoryIteratorRecursiveIteratorIteratorphp 类递归地设置给定路径的文件或/和目录权限。但事情似乎不起作用,所以我很乐意得到你的帮助。谢谢!

function rSetPerms($path ,$filemode = '0644', $foldermode = '0705')
{ 

    if(!is_dir($path) and !file_exists($path)) return false;

        $paths = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST);

        foreach ($paths as $item) {
            if ($item->isDir()) 
            {
                if (!@ chmod($item->__toString(), octdec($foldermode))) return false;
            } 
            else 
            {
                if (!@ chmod($item->__toString(), octdec($filemode))) return false;
            }
    }
    return true;
} 
4

1 回答 1

0

您应该记住,您的 php 脚本需要以 root 身份执行才能对文件进行 chmod。

您也可以只使用sudo chmod -R递归地将 chmod 应用于目录及其子目录中的文件。

于 2013-07-10T19:21:51.493 回答