Safe_mode restrictions ignored means:
cant read by read() so is_readable() = false.
even if safe_mode_include_dir is set and include does works, is_readable() is false to. :(
(php5)
is_readable
(PHP 4, PHP 5)
is_readable — Diz se o arquivo pode ser lido
Descrição
Diz se o arquivo pode ser lido.
Parâmetros
- filename
-
Caminho do arquivo.
Valor Retornado
Retorna TRUE se o arquivo ou diretório especificado por filename existe e pode ser lido, FALSE do contrário.
Exemplos
Exemplo #1 Exemplo de is_readable()
<?php
$filename = 'teste.txt';
if (is_readable($filename)) {
echo 'O arquivo pode ser lido.';
} else {
echo 'O arquivo não pode ser lido.';
}
?>
Notas
Lembre-se que o PHP pode acessar o arquivo como o usuário com o qual o servidor web é executado (geralmente 'nobody'). Limitações de Safe Mode não são levadas em conta antes do PHP 5.1.5.
Nota: O resultado desta função é cacheada. Veja clearstatcache() para mais detalhes.
A partir do PHP 5.0.0, esta função também pode ser utilizada com alguns wrappers URL. Veja List of Supported Protocols/Wrappers para uma lista de quais wrappers são suportados pela família de funções stat().
Nota: A verificação é feita usando os UID/GID reais ao invés dos efetivos.
is_readable
07-Nov-2006 06:58
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.
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.
Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.
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.)
