is_readable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_readable判断文件是否存在且可读

说明

is_readable(string $filename): bool

判断文件是否存在且可读。

参数

filename

文件路径。

返回值

如果由 filename 指定的文件或目录存在且可读,则返回 true,否则返回 false

错误/异常

失败时,会发出 E_WARNING

示例

示例 #1 is_readable() 示例

<?php
$filename
= 'test.txt';
if (
is_readable($filename)) {
echo
'文件可读';
} else {
echo
'文件不可读';
}
?>

注释

请记住,PHP 可能会以 Web 服务器运行的用户 ID(通常为“nobody”)访问文件。

注意: 此函数的结果会被缓存。有关详细信息,请参阅 clearstatcache()

提示

从 PHP 5.0.0 开始,此函数也可以与某些 URL 包装器一起使用。请参阅 支持的协议和包装器 以确定哪些包装器支持 stat() 系列的功能。

注释:

检查使用的是实际 UID/GID,而不是有效的 UID/GID。

此函数可能对目录返回 true。使用 is_dir() 区分文件和目录。

参见

添加注释

用户贡献注释 4 个注释

jo at durchholz dot org
18 年前
DrTebi at yahoo dot com 是错误的。is_readable() 检查你是否可以执行 file_get_contents() 或类似的调用,仅此而已。如果给定的位置返回 500 或 403 错误,你仍然可以 read() 它(你只会得到错误页面),但它仍然是 read()able。使用 is_readable 来检查 URL 的有效性是错误的函数。
pgl at yoyo dot org
15 年前
请注意,is_readable() 对流(例如 php://stdin)将返回 false。
arikan134 at gmail dot com
8 年前
is readable 递归。检查所有子目录和文件是否可读
<?php
function is_readable_r($dir) {
if (
is_dir($dir)) {
if(
is_readable($dir)){
$objects = scandir($dir);
foreach (
$objects as $object) {
if (
$object != "." && $object != "..") {
if (!
is_readable_r($dir."/".$object)) return false;
else continue;
}
}
return
true;
}else{
return
false;
}

}else if(
file_exists($dir)){
return (
is_readable($dir));

}
}

?>
匿名
19 年前
有时在 file_exists 失败(即使文件存在也返回 false)的情况下,stat 会起作用。
To Top