Note that is_readable() will return false for streams, eg, php://stdin.
is_readable
(PHP 4, PHP 5)
is_readable — Bir dosyanın mevcut ve okunabilir olup olmadığını söyler
Açıklama
$dosyaismi
)Bir dosyanın mevcut ve okunabilir olup olmadığını söyler.
Değiştirgeler
-
dosyaismi -
Dosyanın yolu.
Dönen Değerler
dosyaismi ile belirtilen dosya mevcutsa ve
okunabilirse TRUE aksi takdirde FALSE döndürür.
Örnekler
Örnek 1 - is_readable() örneği
<?php
$dosya = 'dnm.txt';
if (is_readable($dosya)) {
echo 'Dosya okunabilir';
} else {
echo 'Dosya okunamaz';
}
?>
Notlar
PHP'nin sadece HTTP sunucusunun aidiyetinde çalıştığı kullanıcının sahibi olduğu dosyalara erişebildiğini aklınızdan çıkarmayın. Güvenli kip sınırlamaları PHP 5.1.5 öncesinde hesaba katılmaz.
Bilginize: Bu işlevin sonuçları önbelleğe kaydedilir. Daha ayrıntılı bilgi edinmek için clearstatcache() işlevine bakınız.
PHP 5.0.0 sürümünden itibaren bu işlev bazı URL sarmalayıcıları ile kullanılabilmektedir. stat() ailesini destekleyen sarmalayıcıların listesini Supported Protocols and Wrappers başlığı altında bulabilirsiniz.
Bilginize:
Sınama etkin kullanıcı veya grup kimliği ile değil gerçek kullanıcı veya grup kimliği ile yapılır.
Ayrıca Bakınız
- is_writable() - Bir dosyanın yazılabilir olup olmadığını söyler
- file_exists() - Bir dosya veya dizinin mevcut olup olmadığına bakar
- fgets() - Dosya tanıtıcısından bir satır döndürür
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)
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.
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.
