is_readable

(PHP 3, PHP 4, PHP 5)

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

Описание

bool is_readable ( string filename )

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

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

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

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

См. также описание функций is_writable(), file_exists() и fgets().



is_readable
jo at durchholz dot org
30-Jan-2006 09:15
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.
DrTebi at yahoo dot com
13-Oct-2005 09:22
Be careful when using is_readable on symbolic links.

is_readable will return true if the file the symbolic link is pointing to is readable.

The problem is that if the server does NOT allow to follow symbolic links, is_readable will still return true, but e.g. redirecting to the sybolic link will not work. For Apache, make sure that at the server, virtual host configuration level, or inside a directory container you have set
Options +FollowSymLinks

As an example, let's say you have at the document root directory:
index.php -- the script using is_readable
my_linked_page.html -- a regular HTML page
my_link -- a link pointing to my_linked_page.html

Now in index.php:
<?php
if (is_readable('my_link')) {
 
header('Location: /my_link');
}
?>

If FollowSymLinks is forbidden, this will not work, if allowed, it will.
26-Jul-2005 07:08
Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.
php dot 5 dot ce at spamgourmet dot com
12-Jan-2005 06:32
If you are using ACL, watch out for Bug #30931 (now open without any reaction for about 2 month, alltough an solution exists.)
takeda at takeda dot tk
06-Jun-2003 09:36
this function also can be used if you want check permissions for directory.

<is_linkis_uploaded_file>
 Last updated: Mon, 14 Nov 2005