代码之家  ›  专栏  ›  技术社区  ›  TheDeadMedic

stat()和安培运算符

php
  •  3
  • TheDeadMedic  · 技术社区  · 14 年前

    $stat = stat( dirname( $new_file ));
    $perms = $stat['mode'] & 0000666;
    @ chmod( $new_file, $perms );
    
    3 回复  |  直到 14 年前
        1
  •  3
  •   Jon Benedicto    14 年前

    该代码使用位操作确保文件的权限不高于666。 要分解它:

    // Retrieves the file details, including current file permissions.
    $stat = stat( dirname( $new_file )); 
    
    // The file permissions are and-ed with the octal value 0000666 to make
    // sure that the file mode is no higher than 666. In other words, it locks
    // the file down, making sure that current permissions are no higher than 666,
    // or owner, group and world read/write.
    $perms = $stat['mode'] & 0000666; 
    
    // Finally, the new permissions are set back on the file
    @chmod( $new_file, $perms );
    
        2
  •  1
  •   metrobalderas    14 年前
        3
  •  0
  •   Blindy    14 年前

    0666 是unix的八进制表示法 rwxrwxrwx 权限,所以我假设 $stat['mode'] 返回文件夹的权限。然后,他们会按位使用 0666 面具检查你是否有