---
title: "fileperms()"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/15105-fileperms"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "herq"
published: "2001-01-05T15:25:00.000Z"
updated: "2001-01-07T18:57:00.000Z"
replies: 2
views: 181
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/15105-fileperms"
---

# fileperms()

## #1 — herq, 2001-01-05T15:25Z

Förstår mig inte riktigt på fileperms() returnerade värden ex:

schmådd - fileperms
444 - 33060
666 - 33206
777 - 33279
770 - 33272

hur kommer det sig?

(blev många PHP inlägg idag :-))

Permalänk: https://www.webforum.nu/p/15105

## #2 — Alias, 2001-01-05T16:53Z

chmod representeras i oktaler.
För att få ett oktalt värde testa detta.
printf("%o", fileperms("a_file.ext") );

Den här funktionen visar hur du kan använda fileperms() !

function display_perms( $mode ) 
{ 
/\* Determine Type \*/ 
if(($mode & 0xC000) === 0xC000) // Unix domain socket 
$type = 's'; 
elseif(($mode & 0x4000) === 0x4000) // Directory 
$type = 'd'; 
elseif(($mode & 0xA000) === 0xA000) // Symbolic link 
$type = 'l'; 
elseif(($mode & 0x8000) === 0x8000) // Regular file 
$type = '-'; 
elseif(($mode & 0x6000) === 0x6000) // Block special file 
$type = 'b'; 
elseif(($mode & 0x2000) === 0x2000) // Character special file 
$type = 'c'; 
elseif(($mode & 0x1000) === 0x1000) // Named pipe 
$type = 'p'; 
else // Unknown 
$type = '?';

/\* Determine permissions \*/ 
$owner\["read"\] = ($mode & 00400) ? 'r' : '-'; 
$owner\["write"\] = ($mode & 00200) ? 'w' : '-'; 
$owner\["execute"\] = ($mode & 00100) ? 'x' : '-'; 
$group\["read"\] = ($mode & 00040) ? 'r' : '-'; 
$group\["write"\] = ($mode & 00020) ? 'w' : '-'; 
$group\["execute"\] = ($mode & 00010) ? 'x' : '-'; 
$world\["read"\] = ($mode & 00004) ? 'r' : '-'; 
$world\["write"\] = ($mode & 00002) ? 'w' : '-'; 
$world\["execute"\] = ($mode & 00001) ? 'x' : '-'; 

/\* Adjust for SUID, SGID and sticky bit \*/ 
if( $mode & 0x800 ) 
$owner\["execute"\] = ($owner\[execute\]=='x') ? 's' : 'S'; 
if( $mode & 0x400 ) 
$group\["execute"\] = ($group\[execute\]=='x') ? 's' : 'S'; 
if( $mode & 0x200 ) 
$world\["execute"\] = ($world\[execute\]=='x') ? 't' : 'T'; 

printf("%1s", $type); 
printf("%1s%1s%1s", $owner\[read\], $owner\[write\], $owner\[execute\]); 
printf("%1s%1s%1s", $group\[read\], $group\[write\], $group\[execute\]); 
printf("%1s%1s%1s\\n", $world\[read\], $world\[write\], $world\[execute\]); 
} 

// Alias

Permalänk: https://www.webforum.nu/p/316513

## #3 — herq, 2001-01-07T18:57Z

tack

så här blev det till slut:

```
$fileperms = sprintf ("%o", fileperms($file));
$fileperms = substr ($fileperms, -3);
```

Permalänk: https://www.webforum.nu/p/316514

---

Tråden på webben: https://www.webforum.nu/amne/php/15105-fileperms
