PHP 7.4.0 alpha 2 Released

is_executable

(PHP 4, PHP 5, PHP 7)

is_executableTells whether the filename is executable

Description

is_executable ( string $filename ) : bool

Tells whether the filename is executable.

Parameters

filename

Path to the file.

Return Values

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

Examples

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';
}

?>

Errors/Exceptions

Upon failure, an E_WARNING is emitted.

Notes

Note: The results of this function are cached. See clearstatcache() for more details.

Tip

As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to Supported Protocols and Wrappers to determine which wrappers support stat() family of functionality.

See Also

  • 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
2 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 month 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 month ago
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).
To Top