php将fileterms函数返回的结果变成可读的形式


  本文标签:php,fileterms

复制代码 代码如下:

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;
}