is_readable
(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — 判断给定文件名是否可读
参数
filename
-
文件的路径。
错误/异常
失败时抛出 E_WARNING
警告。
示例
示例 #1 is_readable() 例子
<?php
$filename = 'test.txt';
if (is_readable($filename)) {
echo 'The file is readable';
} else {
echo 'The file is not readable';
}
?>
注释
记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。
注意: 此函数的结果会被缓存。参见 clearstatcache() 以获得更多细节。
小技巧
自 PHP 5.0.0 起, 此函数也用于某些 URL 包装器。请参见 支持的协议和封装协议以获得支持 stat() 系列函数功能的包装器列表。
注意:
The check is done using the real UID/GID instead of the effective one.
+添加备注
用户贡献的备注 3 notes
jo at durchholz dot org ¶
19 years ago
DrTebi at yahoo dot com is wrong. is_readable() checks whether you can do file_get_contents() or similar calls, no more, no less. If the location given returns a 500 or 403 error, you can still read() that (you'll simply get the error page), but it's still read()able. Using is_readable to check the validity of a URL is simply the wrong function.
pgl at yoyo dot org ¶
15 years ago
Note that is_readable() will return false for streams, eg, php://stdin.
arikan134 at gmail dot com ¶
9 years ago
is readable recursively. Check all sub directories and files 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));
}
}
?>