is_executable

(PHP 4, PHP 5)

is_executableTells whether the filename is executable

Description

bool is_executable ( string $filename )

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.

Changelog

Version Description
5.0.0 is_executable() became available with Windows

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

Коментарии

Автор:
For windows users, 

It will return TRUE for EXE extensions. I have checked for MSI, but it returns FALSE.
2016-08-06 21:38:01
http://php5.kiev.ua/manual/ru/function.is-executable.html
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).
2019-05-02 02:03:17
http://php5.kiev.ua/manual/ru/function.is-executable.html
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_SEPARATORgetenv("PATH"));
    foreach (
$paths as $path) {
        if (
is_executable($path DIRECTORY_SEPARATOR $filename)) {
            return 
true;
        }
    }
    return 
false;
}
2019-05-25 00:41:44
http://php5.kiev.ua/manual/ru/function.is-executable.html
This function returns the value for the process PHP is executing under.

/var/somebody/files was only executable by owner (700).

It contained world-readable files, but without execute permission, PHP could not access the directory to download the files.

is_executable() returned false.

Making the dir world-executable (701) gave access to PHP.  The download worked. And is_executable() returned true.

I assume that if I added PHP to the group of the folder and gave the group executable permission, that would also work.
2020-01-29 08:33:48
http://php5.kiev.ua/manual/ru/function.is-executable.html
Автор:
Under windows, it seems to returns always false for directories.

I.e

<?php
$dir 
__DIR__;
$result is_executable($dir) ? 'true' 'false';

if(
$result){
  echo 
$result;
}
?>

So do NOT use this to check if a folder is transversable because it will be system dependant code.
2020-09-30 17:41:07
http://php5.kiev.ua/manual/ru/function.is-executable.html

    Поддержать сайт на родительском проекте КГБ