is_readable()
(PHP 4, PHP 5, PHP 7)
判断给定文件名是否可读
说明
is_readable(string $filename): bool
判断给定文件名是否存在并且可读。
参数
- $filename
文件的路径。
返回值
如果由$filename指定的文件或目录存在并且可读则返回TRUE
,否则返回FALSE
。
范例
Example #1is_readable()例子
<?php $filename = 'test.txt'; if (is_readable($filename)) { echo 'The file is readable'; } else { echo 'The file is not readable'; } ?>
错误/异常
失败时抛出E_WARNING
警告。
注释
记住 PHP 也许只能以运行 webserver 的用户名(通常为'nobody')来访问文件。不计入安全模式的限制。 Safe mode limitations are not taken into account before PHP 5.1.5.
Note:此函数的结果会被缓存。参见clearstatcache()以获得更多细节。Tip
自 PHP 5.0.0 起,此函数也用于某些URL 包装器。请参见支持的协议和封装协议以获得支持stat()系列函数功能的包装器列表。
Note:
The check is done using the real UID/GID instead of the effective one.
对于目录这个函数可能会返回TRUE
。请使用is_dir()来区分文件和目录。
参见
is_writable()
判断给定的文件名是否可写file_exists()
检查文件或目录是否存在fgets()
从文件指针中读取一行
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.
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)); } } ?>
Note that is_readable() will return false for streams, eg, php://stdin.
Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.