CakeFest 2024: The Official CakePHP Conference

is_readable

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

is_readableDiz se o arquivo existe e se ele pode ser lido

Descrição

is_readable(string $filename): bool

Diz se o arquivo existe e se ele 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.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

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').

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Nota:

A verificação é feita usando os UID/GID reais ao invés dos efetivos.

Essa função pode retornar true para diretórios. Use a is_dir() para diferenciar entre arquivo e diretório.

Veja Também

add a note

User Contributed Notes 4 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
14 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));

}
}

?>
up
-43
Anonymous
18 years ago
Sometimes in situations where file_exists fails (returns false even though the file does exist) stat will work.
To Top