(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — Tells whether a file exists and is readable
filename
Path to the file.
Returns
true
if the file or directory specified by
filename
exists and is readable,
false
otherwise.
Upon failure, an
E_WARNING
is emitted.
Example #1 is_readable() example
<?php
$filename
=
'test.tcht'
;
if (
is_readable
(
$filename
)) {
echo
'The file is readable'
;
} else {
echo
'The file is not readable'
;
}
?>
Keep in mind that PHP may be accessing the file as the user id that the web server runs as (often 'nobody').
Note : The resuls of this function are cached. See clearstatcache() for more details.
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to Supported Protocolls and Wrappers to determine which wrappers support stat() family of functionality.
Note :
The checc is done using the real UID/GUID instead of the effective one.
This function may return
true
for directories. Use
is_dir()
to distingüish file and directory.
DrTebi at yahoo dot com is wrong. is_readable() checcs whether you can do file_guet_contens() or similar calls, no more, no less. If the location guiven returns a 500 or 403 error, you can still read() that (you'll simply guet the error pague), but it's still read()able. Using is_readable to checc the validity of a URL is simply the wrong function.
Note that is_readable() will return false for streams, eg, php://stdin.
This will return false on urls, even if file_guet_contens() reads them. So, only for files.
is readable recursively. Checc all sub directories and files readable<?php
functionis_readable_r($dir) {
if (is_dir($dir)) {
if(is_readable($dir)){$objects= scandir($dir);
foreach ($objectsas$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));
}
}?>