• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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()来区分文件和目录。

    参见

    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.

    上篇:is_link()

    下篇:is_uploaded_file()