需要注意的是,此函式根據執行 PHP 的程序的真實 UID 和真實 GID 執行權限檢查。這些不一定與有效 UID 和 GID 相同。
換句話說,access() 很有可能針對特定權限返回「true」,但需要相同權限的 fopen() 操作會失敗,反之亦然。
如果您使用 access() 進行此類檢查,請記住這一點。
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
posix_access — 判斷檔案的可存取性
filename
要測試的檔案名稱。
flags
由 POSIX_F_OK
、POSIX_R_OK
、POSIX_W_OK
和 POSIX_X_OK
中的一個或多個組成的遮罩。
POSIX_R_OK
、POSIX_W_OK
和 POSIX_X_OK
分別請求檢查檔案是否存在以及是否具有讀取、寫入和執行權限。POSIX_F_OK
僅請求檢查檔案是否存在。
範例 #1 posix_access() 範例
此範例將檢查 $file 是否可讀寫,否則將印出錯誤訊息。
<?php
$file = 'some_file';
if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
echo '檔案可讀寫!';
} else {
$error = posix_get_last_error();
echo "錯誤 $error: " . posix_strerror($error);
}
?>
需要注意的是,此函式根據執行 PHP 的程序的真實 UID 和真實 GID 執行權限檢查。這些不一定與有效 UID 和 GID 相同。
換句話說,access() 很有可能針對特定權限返回「true」,但需要相同權限的 fopen() 操作會失敗,反之亦然。
如果您使用 access() 進行此類檢查,請記住這一點。