Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 17 additions & 33 deletions reference/filesystem/functions/fileperms.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,51 +90,35 @@ echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
$perms = fileperms('/etc/passwd');

switch ($perms & 0xF000) {
case 0xC000: // soket
$info = 's';
break;
case 0xA000: // Sembolik bağ
$info = 'l';
break;
case 0x8000: // Sıradan dosya
$info = 'r';
break;
case 0x6000: // Blok aygıtı
$info = 'b';
break;
case 0x4000: // Dizin
$info = 'd';
break;
case 0x2000: // Karakter aygıtı
$info = 'c';
break;
case 0x1000: // FIFO boru
$info = 'p';
break;
default: // Bilinmiyor
$info = 'u';
}
case 0x1000: $info = 'p'; break; // FIFO boru
case 0x2000: $info = 'c'; break; // Karakter aygıtı
case 0x4000: $info = 'd'; break; // Dizin
case 0x6000: $info = 'b'; break; // Blok aygıtı
case 0x8000: $info = '-'; break; // Sıradan dosya
case 0xA000: $info = 'l'; break; // Sembolik bağ (Bu özellik lstat fonksiyonu kullanılırken kullanılabilir)
case 0xC000: $info = 's'; break; // soket

// Bilinmiyor
default: $info = 'u';
}

// Kullanıcı
$setuid = $perms & 0x0800;
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));
$info .= (($perms & 0x0040) ? ($setuid ? 's' : 'x') : ($setuid ? 'S' : '-'));

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

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

echo $info;
?>
Expand Down