2016-05-29 229 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); 
}