posix_access

(PHP 5 >= 5.1.0)

posix_accessErmittelt die Zugriffsberechtigungen einer Datei

Beschreibung

bool posix_access ( string $file [, int $mode = POSIX_F_OK ] )

posix_access() überprüft, welche Zugriffsberechtigungen der Benutzer für eine Datei hat.

Parameter-Liste

file

Der Name der zu überprüfenden Datei.

mode

Eine Maske, die aus einer oder mehr der Konstanten POSIX_F_OK, POSIX_R_OK, POSIX_W_OK und POSIX_X_OK besteht.

POSIX_R_OK, POSIX_W_OK und POSIX_X_OK fordern eine Überprüfung an, ob die Datei existiert und ob dafür Lese-, Schreib-, bzw. Ausführungsrechte vorliegen. POSIX_F_OK fordert nur eine Überprüfung der Existenz der Datei an.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 posix_access()-Beispiel

Dieses Beispiel überprüft, ob $datei gelesen und geschrieben werden darf, und gibt andernfalls eine Fehlermeldung aus.

<?php

$datei 
'irgendeine_datei';

if (
posix_access($filePOSIX_R_OK POSIX_W_OK)) {
    echo 
'Die Datei darf gelesen und geschrieben werden!';

} else {
    
$fehler posix_get_last_error();

    echo 
"Fehler $fehler: " posix_strerror($fehler);
}

?>

Anmerkungen

Hinweis: Wenn Safe Mode aktiviert ist, überprüft PHP, ob die Dateien/Verzeichnisse, die mit dem Skript bearbeitet werden sollen, die gleiche UID (Eigentümer) haben wie das Skript selbst.

Siehe auch

  • posix_get_last_error() - Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
  • posix_strerror() - Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört

add a note add a note

User Contributed Notes 1 note

up
0
unixguy at earth dot com
5 months ago
It should be noted that this function performs access checks based on the real UID and real GID of the process running PHP.  These aren't necessarily the same as the effective UID and GID.

In other words, it may well be that access() returns “true” for a particular permission, but an fopen() operation which requires the same permission will fail, and vice versa.

Keep that in mind if you use access() for such checks.
To Top