is_executable

(PHP 3, PHP 4, PHP 5)

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

说明

bool is_executable ( string filename )

如果文件存在且可执行则返回 TRUE

is_executable() 自 PHP 5.0.0 版起可用于 Windows

例子 1. is_executable() 例子

<?php

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

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

?>

注: 本函数的结果会被缓存。更多信息参见 clearstatcache()

提示: PHP 5.0.0 起本函数也可被某些 URL wrapper 使用。参考附录 L 来看哪些 wrapper 支持 stat() 系列函数的功能。

参见 is_file()is_link()


add a note add a note User Contributed Notes
Buuyo
06-Aug-2004 06:51
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
02-Jun-2002 02: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.
drtebi at hotmail dot com
10-Feb-2001 12:12
[Editor's Note: This is the expected behavior (at least on most Unix-like systems).  If a directory is not executable, then you cannot get details on the files in the directory - this includes the permissions.

--zak@php.net]

This does not work on directories!
look at this example:

if(is_file("foo/bar"))
  print "found it";

if "bar" exists, but directory "foo" is not executable, you will NOT get "found it" as result.