Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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*

like image 492
setcookie Avatar asked Oct 25 '11 12:10

setcookie


1 Answers

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.

like image 156
Lekensteyn Avatar answered Sep 29 '22 07:09

Lekensteyn