is_executable

(PHP 4, PHP 5, PHP 7)

is_executableTells whether the filename is executable

설명

bool is_executable ( string $filename )

Tells whether the filename is executable.

인수

filename

Path to the file.

반환값

Returns TRUE if the filename exists and is executable, or FALSE on error.

예제

Example #1 is_executable() example

<?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() 패밀리를 지원하는 래퍼 목록은 Supported Protocols and Wrappers를 참고하십시오.

참고

  • is_file() - Tells whether the filename is a regular file
  • is_link() - Tells whether the filename is a symbolic link

add a note add a note

User Contributed Notes 3 notes

up
9
Shyammakwana.me
4 years ago
For windows users,

It will return TRUE for EXE extensions. I have checked for MSI, but it returns FALSE.
up
0
divinity76 at gmail dot com
1 year ago
is_executable() does not check the PATH environment variable, so if your current working dir is /dir/ and you have /bin/ in your PATH env and the file /bin/ffmpeg exists, then you can still run shell_exec("ffmpeg"), but is_executable("ffmpeg") will return false.

if you're looking for a version of is_executable that also considers the PATH environment variable, then try this:

<?php

function is_executable_pathenv(string $filename): bool
{
    if (
is_executable($filename)) {
        return
true;
    }
    if (
$filename !== basename($filename)) {
        return
false;
    }
   
$paths = explode(PATH_SEPARATOR, getenv("PATH"));
    foreach (
$paths as $path) {
        if (
is_executable($path . DIRECTORY_SEPARATOR . $filename)) {
            return
true;
        }
    }
    return
false;
}
up
0
telezhkin at gmail dot com
1 year ago
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).
To Top