The change doesn't appear to be documented, so I thought I would mention it. In php5, as opposed to php4, you can no longer rely on is_executable to check the executable bit on a directory in 'nix. You can still use the first note's method to check if a directory is traversable:
@file_exists("adirectory/.");
is_executable
(PHP 4, PHP 5)
is_executable — ファイルが実行可能かどうかを調べる
説明
bool is_executable
( string $filename
)
ファイルが実行可能かどうかを調べます。
パラメータ
- filename
-
ファイルへのパス。
返り値
ファイルが存在し、かつそれが実行可能な場合に TRUE、 エラー時に FALSE を返します。
変更履歴
| バージョン | 説明 |
|---|---|
| 5.0.0 | is_executable() は Windows でも使用可能となりました。 |
例
例1 is_executable() の例
<?php
$file = '/home/vincent/somefile.sh';
if (is_executable($file)) {
echo $file.' は実行可能です';
} else {
echo $file.' は実行可能ではありません';
}
?>
注意
注意: この関数の結果は キャッシュされます。詳細は、clearstatcache() を参照してください。
ヒント
PHP 5.0.0 以降、この関数は、 何らかの URL ラッパーと組合せて使用することができます。 どのラッパーが stat() ファミリーをサポートしているか のリストについては、サポートされるプロトコル/ラッパー を参照してください。
is_executable
Buuyo
06-Aug-2004 07:51
06-Aug-2004 07:51
david at littlesystems dot com dot au
02-Jun-2002 03:38
02-Jun-2002 03:38
to test whether the directory /home/david is executable (regardless of whether it is readable or writeable), issue the command:
$my_isWriteable = @file_exists("/home/david/.")
the @ gets rid of the warning when this command fails when the directory is not executable.