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 — Indica si es posible leer el archivo
Descripción
Indica si es posible leer el archivo dado.
Lista de parámetros
- nombre_archivo
-
Ruta al archivo.
Valores retornados
Devuelve TRUE si el archivo o directorio especificado por nombre_archivo existe y es posible leerlo, FALSE de lo contrario.
Ejemplos
Example #1 Ejemplo de is_readable()
<?php
$nombre_archivo = 'prueba.txt';
if (is_readable($nombre_archivo)) {
echo 'Es posible leer el archivo';
} else {
echo 'No es posible leer el archivo';
}
?>
Notes
Tenga en cuenta que PHP puede estar accediendo al archivo bajo el id de usuario bajo el que corre el servidor web (usualmente 'nobody'). Las limitaciones dol modo seguro no son tomadas en cuenta antes de PHP 5.1.5.
Note: Los resultados de esta función son guardados. Consultar clearstatcache() para más detalles.
A partir de PHP 5.0.0, esta funcion tambien puede usarse con algunas URL como nombre de fichero. Consultar Lista de Protocolos/Envolturas Soportadas, para obtener una lista con soporte para la funcionalidad stat().
Note: El chequeo es realizado usando el UID/GID real en lugar del efectivo.
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.)
