downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

is_file> <is_dir
[edit] Last updated: Fri, 17 May 2013

view this page in

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.' は実行可能ではありません';
}

?>

エラー / 例外

失敗したときは E_WARNING が発生します。

注意

注意: この関数の結果は キャッシュされます。詳細は、 clearstatcache() を参照してください。

ヒント

PHP 5.0.0 以降、この関数は、 何らかの URL ラッパーと組合せて使用することができます。 どのラッパーが stat() ファミリーをサポートしているかを調べるには サポートするプロトコル/ラッパー を参照してください。

参考

  • is_file() - 通常ファイルかどうかを調べる
  • is_link() - ファイルがシンボリックリンクかどうかを調べる



is_file> <is_dir
[edit] Last updated: Fri, 17 May 2013
 
add a note add a note User Contributed Notes is_executable - [3 notes]
up
0
david at littlesystems dot com dot au
10 years ago
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.
up
-1
DaveRandom
4 months ago
is_executable() cannot necessarily be relied upon to return sensible results on Windows. Unlike *nix, it does not check permissions, it uses the Windows API call GetBinaryType(), which checks specifically whether the file path is a binary executable file.

This means, crucially, that it will never return TRUE for batch files or other scripts that could otherwise be executed directly when called through the shell.

PHP source code ref: http://lxr.php.net/xref/PHP_5_4/TSRM/tsrm_win32.c#213

GetBinaryType() documentation: http://msdn.microsoft.com/en-gb/library/windows/desktop/aa364819(v=vs.85).aspx
up
-2
Buuyo
8 years ago
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/.");

 
show source | credits | sitemap | contact | advertising | mirror sites