我正在建立其他网站的网站上工作。如果有的话,我使用copy()创建文件和目录,而另一些时候,我在php中构建XML文件并使用DOMDocument::save保存它们。最终结果是一个具有各种混乱权限的根文件夹。我一直在修改文件和文件夹,在一定程度上说这句话,但是在使用copy()
时特别麻烦。
((到目前为止,我在这里http://pastebin.com/SBE8vtFX,attn:function modPath($path)
)
我想采用另一种方法,并递归地将文档根目录中的所有文件和文件夹chmod / chown / chgrp还原到我的规范一次。
例如以文档根目录为例>>
个文件?我也想区分目录和文件夹之间的不同chmod设置。这需要是一个PHP解决方案。/home/mysite/public_html
并且在
public_html
以内,我>]-rwxrwxrwx 1 mysite mysite 348 Aug 31 10:49 index.php d--------x 5 root root 4096 Aug 30 10:21 folder1 drwxrwxrwx 2 mysite mysite 4096 Aug 30 09:41 folder2
我的问题:
我如何一次修改指定目录中的all
据我所知
<?php function modAll($root) { $aPath = explode("/", $root); $user = $aPath[2]; /* Some sort of looping through $root */ { $mod = (is_dir($thisfileorfolder) ? 0755 : 0644); chmod($thisfileorfolder, $mod); chown($thisfileorfolder, $user); chgrp($thisfileorfolder, $user); } } ?>
我正在建立其他网站的网站上工作。如果有的话,我使用copy()创建文件和目录,而其他时候,我在php中构建XML文件并使用DOMDocument :: save保存它们。 ...
这应该很有帮助。编辑:已纠正一些语法错误
function fsmodify($obj) {
$chunks = explode('/', $obj);
chmod($obj, is_dir($obj) ? 0755 : 0644);
chown($obj, $chunks[2]);
chgrp($obj, $chunks[2]);
}
function fsmodifyr($dir)
{
if($objs = glob($dir."/*")) {
foreach($objs as $obj) {
fsmodify($obj);
if(is_dir($obj)) fsmodifyr($obj);
}
}
return fsmodify($dir);
}
您可以执行system通话
system("/bin/chmod -R $mod $root");
system("/usr/bin/find -type d $root -print0 | xargs -0 | /bin/chmod $moddir");
system("/bin/chown -R $user $root");
system("/bin/chgrp -R $user $root");