PHP Conference Japan 2024

is_readable

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

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

描述

is_readable(字符串 $filename): 布尔值

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

参数

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() 区分文件和目录。

参见

添加注释

用户贡献的注释 3 条注释

9
jo at durchholz dot org
18 年前
DrTebi at yahoo dot com 是错误的。is_readable() 检查您是否可以执行 file_get_contents() 或类似的调用,仅此而已。如果给定的位置返回 500 或 403 错误,您仍然可以 read() 它(您只会获得错误页面),但它仍然是可 read() 的。使用 is_readable 检查 URL 的有效性是错误的函数。
1
pgl at yoyo dot org
15 年前
请注意,is_readable() 将对流(例如 php://stdin)返回 false。
0
arikan134 at gmail dot com
8 年前
is 可递归读取。检查所有子目录和文件是否可读
<?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));

}
}

?>
To Top