php将fileterms函数返回的结果变成可读的形式
author:一佰互联 2019-04-30   click:181
复制代码 代码如下:
function perms_str($perms){
    if (($perms & 0xC000) == 0xC000) {
        // Socket
        $info = "s";
    } elseif (($perms & 0xA000) == 0xA000) {
        // Symbolic Link
        $info = "l";
    } elseif (($perms & 0x8000) == 0x8000) {
        // Regular
        $info = "-";
    } elseif (($perms & 0x6000) == 0x6000) {
        // Block special
        $info = "b";
    } elseif (($perms & 0x4000) == 0x4000) {
        // Directory
        $info = "d";
    } elseif (($perms & 0x2000) == 0x2000) {
        // Character special
        $info = "c";
    } elseif (($perms & 0x1000) == 0x1000) {
        // FIFO pipe
        $info = "p";
    } else {
        // Unknown
        $info = "u";
    }

    // Owner
    $info .= (($perms & 0x0100) ? "r" : "-");
    $info .= (($perms & 0x0080) ? "w" : "-");
    $info .= (($perms & 0x0040) ?
                (($perms & 0x0800) ? "s" : "x" ) :
                (($perms & 0x0800) ? "S" : "-"));

    // Group
    $info .= (($perms & 0x0020) ? "r" : "-");
    $info .= (($perms & 0x0010) ? "w" : "-");
    $info .= (($perms & 0x0008) ?
                (($perms & 0x0400) ? "s" : "x" ) :
                (($perms & 0x0400) ? "S" : "-"));

    // World
    $info .= (($perms & 0x0004) ? "r" : "-");
    $info .= (($perms & 0x0002) ? "w" : "-");
    $info .= (($perms & 0x0001) ?
                (($perms & 0x0200) ? "t" : "x" ) :
                (($perms & 0x0200) ? "T" : "-"));

    return $info;
}