fileperms

funkcja

Zwraca uprawnienia pliku lub katalogu jako liczbę całkowitą. Użyj sprintf('%o', ...) by uzyskać zapis ósemkowy.

fileperms(string $filename): int|false

fileperms zwraca pełne uprawnienia pliku jako liczbę całkowitą (zawierającą też bity typu węzła). Aby wyodrębnić samą część rwxrwxrwx w formacie ósemkowym, użyj:

substr(sprintf('%o', fileperms($sciezka)), -4)

Wynik to np. 0644 (właściciel czyta i pisze, reszta tylko czyta) lub 0755 (katalog wykonywalny). Funkcja zwraca false, gdy plik nie istnieje lub brak uprawnień do odczytu metadanych.

Pamiętaj, że PHP cache'uje wyniki stat — po zmianie uprawnień wywołaj clearstatcache(), żeby dostać świeże dane.

<?php
declare(strict_types=1);

$sciezka = sys_get_temp_dir() . '/sekret.txt';
file_put_contents($sciezka, 'poufne dane');
chmod($sciezka, 0600);

$perms = fileperms($sciezka);

if ($perms === false) {
    throw new \RuntimeException('Nie można odczytać uprawnień.');
}

echo substr(sprintf('%o', $perms), -4) . PHP_EOL; // 0600

unlink($sciezka);