2016-05-29 138 views
1

我想用PHP递归地更改目录的所有者。 chown函数仅适用于单个文件。我如何递归递归?

我知道我可以从终端使用下面的命令:

sudo chown -R user /path/to/dir/ 

如何实现在PHP中的一样吗?

回答

2
/** 
* Recursively chown a directory 
* 
* @param string  $dir 
* @param string|int $user 
*/ 
function rchown($dir, $user) 
{ 
    $dir = rtrim($dir, "/"); 
    if ($items = glob($dir . "/*")) { 
     foreach ($items as $item) { 
      if (is_dir($item)) { 
       rchown($item, $user); 
      } else { 
       chown($item, $user); 
      } 
     } 
    } 

    chown($dir, $user); 
}