Dutch PHP Conference 2025 - Call For Papers

is_readable

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

is_readableTells whether a file exists and is readable

Опис

is_readable(string $filename): bool

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.

Помилки/виключення

Під час збоїв буде видаватись E_WARNING.

Приклади

Приклад #1 is_readable() example

<?php
$filename
= 'test.txt';
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').

Зауваження: Рузультати цієї функції кешуються. Докладніше: clearstatcache().

Підказка

Починаючи з PHP 5.0.0, ця функція також може бути використана з деякими URL-обгортками. На сторінці Підтримувані протоколи та обгортки вказано, які обгортки підтримують сімейство функцій stat().

Зауваження:

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.

Прогляньте також

add a note

User Contributed Notes 3 notes

up
9
jo at durchholz dot org
18 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.
up
1
pgl at yoyo dot org
15 years ago
Note that is_readable() will return false for streams, eg, php://stdin.
up
0
arikan134 at gmail dot com
8 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($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));

}
}

?>
To Top