For windows users,
It will return TRUE for EXE extensions. I have checked for MSI, but it returns FALSE.
(PHP 4, PHP 5, PHP 7)
is_executable — Sprawdza czy podany plik jest wykonywalny
$nazwa_pliku
) : boolSprawdza czy podany plik jest wykonywalny.
nazwa_pliku
Ścieżka do pliku.
Zwraca TRUE
jeżeli plik istnieje i jest wykonywalny lub FALSE
w
wypadku błędu.
Przykład #1 Przykład użycia is_executable()
<?php
$file = '/home/vincent/somefile.sh';
if (is_executable($file)) {
echo $file.' jest wykonywalny';
} else {
echo $file.' nie jest wykonywalny';
}
?>
W przypadku niepowodzenia jest emitowany E_WARNING
.
Informacja: Wyniki działania tej funkcji są buforowane. Zobacz opis funkcji clearstatcache() aby uzyskać więcej informacji.
Od PHP 5.0.0 ta funkcja może być użyta także z niektórymi nakładkami URL. Zobacz Wspierane protokoły i wrappery aby dowiedzieć się które obsługują funkcjonalność z rodziny stat().
For windows users,
It will return TRUE for EXE extensions. I have checked for MSI, but it returns FALSE.
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;
}
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).