在PHP中为完整路径设置chmod


Set chmod for full path in PHP

我有输入路径:/var/www/site.com/1/2/3/4/file.php

我想:在/var/www/site.com/之后的每个元素上设置chmod 755

例如,通过通用算法:

chmod ('/var/www/site.com/1/', 0755);
chmod ('/var/www/site.com/1/2/', 0755);
chmod ('/var/www/site.com/1/2/3/', 0755);
chmod ('/var/www/site.com/1/2/3/4/', 0755);
chmod ('/var/www/site.com/1/2/3/4/file.php', 0755);

你能帮我吗?

p.S.:仅chmod完整路径,不递归。

<?php
function chmod_path($base, $path, $perm) {
    $full_path = $base;
    foreach (explode(DIRECTORY_SEPARATOR, $path) as $dentry) {
        $full_path .= DIRECTORY_SEPARATOR.$dentry;
        chmod($full_path, $perm);
    }
}
chmod_path('/var/www/site.com', '1/2/3/4/file.php', 0755);
?>