PHP: Hypertext Preprocessor (original) (raw)
is_readable
(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — Tells whether a file exists and is readable
Description
Parameters
filename
Path to the file.
Return Values
Returns [true](reserved.constants.php#constant.true)
if the file or directory specified byfilename
exists and is readable, [false](reserved.constants.php#constant.false)
otherwise.
Errors/Exceptions
Upon failure, an [E_WARNING](errorfunc.constants.php#constant.e-warning)
is emitted.
Examples
Example #1 is_readable() example
<?php $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](reserved.constants.php#constant.true)
for directories. Useis_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
Found A Problem?
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.
15 years ago
Note that is_readable() will return false for streams, eg, php://stdin.
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(objects = scandir(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));
}
}
?>`