Filesystem 函数
在线手册:中文  英文

is_executable

(PHP 4, PHP 5)

is_executable判断给定文件名是否可执行

说明

bool is_executable ( string $filename )

判断给定文件名是否可执行。

参数

filename

文件的路径。

返回值

如果文件存在且可执行则返回 TRUE,错误时返回FALSE

更新日志

版本 说明
5.0.0 is_executable() 开始可用以于 Windows

范例

Example #1 is_executable() 例子

<?php

$file 
'/home/vincent/somefile.sh';

if (
is_executable($file)) {
    echo 
$file.' is executable';
} else {
    echo 
$file.' is not executable';
}

?>

错误/异常

失败时抛出E_WARNING警告。

注释

Note: 此函数的结果会被缓存。参见 clearstatcache() 以获得更多细节。

Tip

自 PHP 5.0.0 起, 此函数也用于某些 URL 包装器。请参见 支持的协议和封装协议以获得支持 stat() 系列函数功能的包装器列表。

参见


Filesystem 函数
在线手册:中文  英文

用户评论:

DaveRandom (2013-01-20 00:32:08)

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

Buuyo (2004-08-06 03:51:25)

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/.");

david at littlesystems dot com dot au (2002-06-01 23:38:26)

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.

易百教程