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);