需要注意的是,此函数根据运行 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() 进行此类检查,请牢记这一点。