gpt4 book ai didi

php - 递归 chmod/chown/chgrp 目录中的所有文件和文件夹

转载 作者:可可西里 更新时间:2023-11-01 12:43:58 25 4
gpt4 key购买 nike

我在一个建立其他网站的网站上工作。一些如果我使用 copy()创建文件和目录,其他时候我在 php 中构建 XML 文件并使用 DOMDocument::save拯救他们。最终结果是一个具有各种困惑权限的根文件夹。我一直在修改文件和文件夹,在某种程度上是这样的,但在使用 copy() 时我尤其遇到麻烦。

(这是我目前所在的位置 http://pastebin.com/SBE8vtFX,收件人:function modPath($path))

我想采用一种不同的方法,立即递归chmod/chown/chgrp我的文档根目录中的所有文件和文件夹以符合我的规范。

以文档根目录为例

/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

我的问题:

如何一次修改指定目录中的所有文件?我也想区分目录和文件夹之间的不同 chmod 设置。这需要一个 PHP 解决方案。

这是我所能得到的

<?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);
}
}

?>

最佳答案

这应该会有帮助。编辑:更正了一些语法错误

    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);
}

关于php - 递归 chmod/chown/chgrp 目录中的所有文件和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7261566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com