setcookie
setcookie

Reputation: 629

PHP: fileperms() values and convert these

Here is something i dont understand:

A file has the permission 0644 which if i use php´s fileperms() functions returns 16804 as integer if i make a var_dump(). What/where is the relation between the two and how can i convert a, lets say 0755, into whatever fileperms() would return for 0755.

THX

set*

Upvotes: 6

Views: 3525

Answers (1)

Lekensteyn
Lekensteyn

Reputation: 66515

16804 is the decimal notation for the octal number 40644. Check 2nd example of the PHP manual for the meaning of these values.

40644 extracted:

  • 4 - the file is a directory
  • 0 - padding to get the first 4 on the 5th position
  • 6 - read-writable for the owner
  • 4 - readable only for the group
  • 4 - readable only for the world.

PHP recognizes numbers with a leading zero as an octal number. If you need to convert a string containing 0755 or 755 to a decimal number, use octdec(). The reverse function (decimal to octal) is decoct().

If you need to change the file permissions of a file, use chmod(). For that to work, you need to be the owner of the file, otherwise you get a Permission denied error.

Upvotes: 7

Related Questions