PHP中的递归chmod函数
文件权限很重要,尤其是如果要让用户代理查看文件时,尤其如此。如果该文件没有正确的权限,则将无法访问该文件,并且可能导致脚本失败。为了解决这个问题,您可能需要使用以下功能。它使用PHP函数chmod()设置权限,但是无论您在何处设置权限,它都会以递归方式进行操作。
function chmod_R($path, $filemode) {if ( !is_dir($path) ) {
return chmod($path, $filemode);
}
$dh = opendir($path);
while ( $file = readdir($dh) ) {
if ( $file != '.' && $file != '..' ) {
$fullpath = $path.'/'.$file;
if( !is_dir($fullpath) ) {
if ( !chmod($fullpath, $filemode) ){
return false;
}
} else {
if ( !chmod_R($fullpath, $filemode) ) {
return false;
}
}
}
}
closedir($dh);
if ( chmod($path, $filemode) ) {
return true;
} else {
return false;
}
}
这对于某些创建或复制文件的脚本特别有用,因为可能会在没有正确权限的情况下创建这些文件。您可以通过为首选项提供一个目录和一个八进制值来调用此函数。请注意,八进制值很重要。如果要授予文件775的权限,则必须使用0775。以下是此函数的实际操作示例,已为该脚本提供了要从中运行脚本的当前目录。
chmod_R(dirname(__FILE__),0775);
此目录下的所有内容(包括脚本文件)都将设置为0775,这对于大多数用途来说是标准的。
以上是 PHP中的递归chmod函数 的全部内容, 来源链接: utcz.com/z/354454.html