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

回到顶部