is_readable
(PHP 4, PHP 5, PHP 7, PHP 8)
is_readable — ファイルが存在し、読み込み可能であるかどうかを知る
パラメータ
filename
-
ファイルへのパス。
エラー / 例外
失敗したときは E_WARNING
が発生します。
例
例1 is_readable() の例
<?php
$filename = 'test.txt';
if (is_readable($filename)) {
echo 'このファイルは読み込み可能です';
} else {
echo 'このファイルは読み込み可能ではありません';
}
?>
注意
PHP は、Web サーバーを実行しているユーザー ID (たいていは 'nobody') でファイルにアクセスすることを覚えておいてください。
注意: この関数の結果は キャッシュされます。詳細は、clearstatcache() を参照してください。
ヒント
PHP 5.0.0
以降、この関数は、
何らかの URL ラッパーと組合せて使用することができます。
どのラッパーが stat() ファミリーをサポートしているかを調べるには
サポートするプロトコル/ラッパー を参照してください。
注意:
チェックは、実効ユーザーではなく実ユーザーの UID/GID で行います。
この関数は、ディレクトリに対しても true
を返すかもしれません。
ファイルとディレクトリを区別するには is_dir() を使いましょう。
参考
- is_writable() - ファイルが書き込み可能かどうかを調べる
- file_exists() - ファイルまたはディレクトリが存在するかどうか調べる
- fgets() - ファイルポインタから 1 行取得する
+add a note
User Contributed Notes 3 notes
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.
pgl at yoyo dot org ¶
15 years ago
Note that is_readable() will return false for streams, eg, php://stdin.
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));
}
}
?>