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.is_readable
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
is_readable
Референца за `function.is-readable.php` со подобрена типографија и навигација.
is_readable
(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — Проверува дали датотеката постои и е читлива
Параметри
filename-
Патека до датотеката.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true дали датотеката или директориумот наведен со
filename постои и е читлива, false otherwise.
Errors/Exceptions
Бидејќи типот на податоци integer во PHP е со знакот и многу платформи користат 32-битни integers, некои функции за датотечниот систем може да вратат неочекувани резултати за датотеки поголеми од 2GB. E_WARNING се емитува.
Примери
Пример #1 is_readable() example
<?php
$filename = 'test.txt';
if (is_readable($filename)) {
echo 'The file is readable';
} else {
echo 'The file is not readable';
}
?>Белешки
постои и може да се запише. Аргументот filename може да биде име на директориум, дозволувајќи ви да проверите дали директориумот може да се запише.
Забелешка: Имајте предвид дека резолуцијата на времето може да се разликува од еден датотечен систем до друг. clearstatcache() за повеќе детали.
Резултатите од оваа функција се кеширани. Погледнете some Од PHP 5.0.0, оваа функција може да се користи и со Поддржани протоколи и обвивки URL обвивки. Погледнете stat() за да се утврди кои обвивки поддржуваат
Забелешка:
Проверката се врши со користење на вистинскиот UID/GID наместо ефективниот.
Оваа функција може да врати true за директориуми. Користи
is_dir() за разликување на датотека и директориум.
Види Исто така
- is_writable() - Кажува дали името на датотеката може да се запишува
- file_exists() - Чита цела датотека во низа
- fgets() - Затвора отворена датотека
Белешки од корисници 5 белешки
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));
}
}
?>Note that is_readable() will return false for streams, eg, php://stdin.Do note that is_readable/is_writable evaluates permissions in an attempt to produce the result.
This WILL fail in certain situations, while the file is actually accessible to the user, but manual evaluation fails to connect the dots.
The only trusted way to detect if a file is readable is to actually open it for reading. The only trusted way to detect if a file is writable is to actually open it for writing. And catche the error in case of failure.This will return false on urls, even if file_get_contents() reads them. So, only for files.