is_readable

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

is_readableОпределяет существование файла и доступен ли он для чтения

Описание

is_readable(string $filename): bool

Возвращает true, если файл существует и доступен для чтения.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true, если файл или директория, указанная в filename существует и доступна для чтения, иначе возвращает false.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования функции is_readable()

<?php
$filename
= 'test.txt';
if (
is_readable($filename)) {
echo
'Файл доступен для чтения';
} else {
echo
'Файл недоступен для чтения';
}
?>

Примечания

Не забывайте, что PHP может обращаться к файлам от имени пользователя, от которого запущен веб-сервер (часто 'nobody').

Замечание: Результаты функции кешируются. Подробнее о кешировании рассказывает описание функции clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Протоколы и обёртки.

Замечание:

Проверка производится с использованием реальных UID/GID вместо эффективных.

Эта функция может возвращать true для директорий. Чтобы отличить файл от директории можно воспользоваться функцией is_dir().

Смотрите также

  • is_writable() - Определяет, доступен ли файл для записи
  • file_exists() - Проверяет существование указанного файла или каталога
  • fgets() - Получает строку из указателя на файл

Добавить

Примечания пользователей 3 notes

up
9
jo at durchholz dot org
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.
up
1
pgl at yoyo dot org
16 years ago
Note that is_readable() will return false for streams, eg, php://stdin.
up
0
arikan134 at gmail dot com
9 years ago
is readable recursively. Check all sub directories and files readable<?phpfunction 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