【问题标题】:Set permissions for all files and folders recursively (Zend Framework 2)递归设置所有文件和文件夹的权限(Zend Framework 2)
【发布时间】:2015-07-08 09:01:42
【问题描述】:

我想在 ZF2 中递归设置所有文件和文件夹的权限。

我的目录路径是/var/blabla/blabla/blabla/public/files/filename

我想为主文件夹设置 0777 权限。 IE。文件夹名称和文件夹的所有内容。

我正在使用

public function chmod_r($dir, $dirPermissions, $filePermissions) {
    $dp = opendir($dir);
    while($file = readdir($dp)) {
        if (($file == ".") || ($file == ".."))
            continue;

        $fullPath = $dir."/".$file;

        if(is_dir($fullPath)) {
            echo('DIR:' . $fullPath . "\n");
            chmod($fullPath, $dirPermissions);
            chmod_r($fullPath, $dirPermissions, $filePermissions);
        } else {
            echo('FILE:' . $fullPath . "\n");
            chmod($fullPath, $filePermissions);
        }

    }
    closedir($dp);
}

作为函数并从我的操作中调用它:

  $this->chmod_r($dirPath, 0777, 0777);

而 $dirPath 包含文件夹的路径。

【问题讨论】:

  • 请记住,您需要对此文件和目录的写权限,否则您无法修改它。如果您使用 apache 用户执行它,则 apache 用户需要此权限

标签: php zend-framework2 file-permissions


【解决方案1】:

你可以试试这个代码:

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST);

foreach($iterator as $item) {
    chmod($item, $filemode);
}

希望这可以帮助您解决问题。

【讨论】:

    【解决方案2】:
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirPath), RecursiveIteratorIterator::SELF_FIRST);
    
    foreach($iterator as $item) { 
        chmod($item, 0777);
    }
    

    我已经这样做了..它对你有用吗?

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 1970-01-01
      • 2011-05-15
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2018-12-03
      • 2018-02-26
      相关资源
      最近更新 更多