is_executable

(PHP 4, PHP 5)

is_executableОпределяет, является ли файл исполняемым

Описание

bool is_executable ( string $filename )

Определяет, является ли файл исполняемым.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является исполняемым, или FALSE в случае ошибки.

Список изменений

Версия Описание
5.0.0 is_executable() стала доступной на Windows

Примеры

Пример #1 Пример использования функции is_executable()

<?php

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

if (
is_executable($file)) {
    echo 
$file.' является исполняемым';
} else {
    echo 
$file.' не является исполняемым';
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_file() - Определяет, является ли файл обычным файлом
  • is_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

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