めも。
下記はファイル、ディレクトリ共にパーミッション777のもので実験。
$fileDir = '/path/to/fileDir'; $filePath = '/path/to/filePath.ext'; $dirPerms = fileperms($fileDir); $filePerms = fileperms($filePath); var_dump($dirPerms, $filePerms); ↓ int(16895) int(33279)
但しfileperms()関数で取得できるパーミッション情報は、上記の通り10進数で表現されるため、普段見慣れている形式で取得したい場合は、8進数形式にフォーマットしてやる必要がある。
$dirPerms = substr(sprintf('%o', fileperms($fileDir)), -4); $filePerms = substr(sprintf('%o', fileperms($filePath)), -4); var_dump($dirPerms, $filePerms); ↓ string(4) "0777" string(4) "0777"
sprintf()の第1引数「%o」は引数を8進数にフォーマットするという意味。その後、substr()で得られた値の後ろから4文字を切り出すことで、見慣れた4桁のパーミッション表現を取得することが出来る。