fileperms

(PHP 4, PHP 5, PHP 7)

filepermsВозвращает информацию о правах на файл

Описание

fileperms ( string $filename ) : int

Возвращает информацию о правах доступа на файл.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает права доступа на указанный файл в числовом виде. Младшие биты этого значения такие же, как и биты прав доступа для использования в функции chmod(), однако, на большинстве платформ, возвращаемое значение будет также включать информацию о типе файла, который передан в качестве параметра filename. Примеры ниже демонстрируют как проверить возвращаемое значение на наличие определенных прав и типа файла на POSIX-системах, включая Linux и macOS.

Для локальных файлов, возвращаемое значение является частью структуры st_mode, которая возвращается функцией С-библиотеки stat(). Какие в точности биты установлены может варьироваться от платформы к платформе. Рекомендуется поискать документацию к вашей платформе, если требуется обработка битов возвращаемого значения, не относящихся к правам доступа.

Примеры

Пример #1 Отображение прав доступа в виде восьмеричного числа

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

Результат выполнения данного примера:

1777
0644

Пример #2 Отображение полных прав доступа

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

switch (
$perms 0xF000) {
    case 
0xC000// сокет
        
$info 's';
        break;
    case 
0xA000// символическая ссылка
        
$info 'l';
        break;
    case 
0x8000// обычный
        
$info 'r';
        break;
    case 
0x6000// файл блочного устройства
        
$info 'b';
        break;
    case 
0x4000// каталог
        
$info 'd';
        break;
    case 
0x2000// файл символьного устройства
        
$info 'c';
        break;
    case 
0x1000// FIFO канал
        
$info 'p';
        break;
    default: 
// неизвестный
        
$info 'u';
}

// Владелец
$info .= (($perms 0x0100) ? 'r' '-');
$info .= (($perms 0x0080) ? 'w' '-');
$info .= (($perms 0x0040) ?
            ((
$perms 0x0800) ? 's' 'x' ) :
            ((
$perms 0x0800) ? 'S' '-'));

// Группа
$info .= (($perms 0x0020) ? 'r' '-');
$info .= (($perms 0x0010) ? 'w' '-');
$info .= (($perms 0x0008) ?
            ((
$perms 0x0400) ? 's' 'x' ) :
            ((
$perms 0x0400) ? 'S' '-'));

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

echo 
$info;
?>

Результат выполнения данного примера:

-rw-r--r--

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обертки.

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • stat() - Возвращает информацию о файле