fileperms

(PHP 4, PHP 5, PHP 7, PHP 8)

filepermsGets file permissions

Опис

fileperms(string $filename): int|false

Gets permissions for the given file.

Параметри

filename

Path to the file.

Значення, що повертаються

Returns the file's permissions as a numeric mode. Lower bits of this mode are the same as the permissions expected by chmod(), however on most platforms the return value will also include information on the type of file given as filename. The examples below demonstrate how to test the return value for specific permissions and file types on POSIX systems, including Linux and macOS.

For local files, the specific return value is that of the st_mode member of the structure returned by the C library's stat() function. Exactly which bits are set can vary from platform to platform, and looking up your specific platform's documentation is recommended if parsing the non-permission bits of the return value is required.

Returns false on failure.

Помилки/виключення

Під час збоїв буде видаватись E_WARNING.

Приклади

Приклад #1 Display permissions as an octal value

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo
substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

Поданий вище приклад виведе:

1777
0644

Приклад #2 Display full permissions

<?php
$perms
= fileperms('/etc/passwd');

switch (
$perms & 0xF000) {
case
0xC000: // socket
$info = 's';
break;
case
0xA000: // symbolic link
$info = 'l';
break;
case
0x8000: // regular
$info = 'r';
break;
case
0x6000: // block special
$info = 'b';
break;
case
0x4000: // directory
$info = 'd';
break;
case
0x2000: // character special
$info = 'c';
break;
case
0x1000: // FIFO pipe
$info = 'p';
break;
default:
// unknown
$info = 'u';
}

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

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

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

echo
$info;
?>

Поданий вище приклад виведе:

-rw-r--r--

Примітки

Зауваження: Рузультати цієї функції кешуються. Докладніше: clearstatcache().

Підказка

Починаючи з PHP 5.0.0, ця функція також може бути використана з деякими URL-обгортками. На сторінці Підтримувані протоколи та обгортки вказано, які обгортки підтримують сімейство функцій stat().

Прогляньте також