Hướng dẫn is_readable in php

- Hàm is_readable() dùng để kiểm tra xem tệp được chỉ định có thể đọc được hay không.

(nếu được thì hàm này sẽ trả về giá trị TRUE, còn không nó sẽ trả về giá trị FALSE)

- Màn hình sẽ hiển thị là:

Tập tin này có thể đọc được

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

is_readableTells whether a file exists and is readable

Description

is_readable(string $filename): bool

Parameters

filename

Path to the file.

Return Values

Returns true if the file or directory specified by filename exists and is readable, false otherwise.

Errors/Exceptions

Upon failure, an E_WARNING is emitted.

Examples

Example #1 is_readable() example

$filename 'test.txt';
if (
is_readable($filename)) {
    echo 
'The file is readable';
} else {
    echo 
'The file is not readable';
}
?>

Notes

Keep in mind that PHP may be accessing the file as the user id that the web server runs as (often 'nobody').

Note: The results of this function are cached. See clearstatcache() for more details.

Note:

The check is done using the real UID/GID instead of the effective one.

This function may return true for directories. Use is_dir() to distinguish file and directory.

See Also

  • is_writable() - Tells whether the filename is writable
  • file_exists() - Checks whether a file or directory exists
  • fgets() - Gets line from file pointer

jo at durchholz dot org

16 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.

arikan134 at gmail dot com

6 years ago

is readable recursively. Check all sub directories and files readable
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));

            }
}

?>

pgl at yoyo dot org

13 years ago

Note that is_readable() will return false for streams, eg, php://stdin.

Anonymous

17 years ago

Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.