is_executable

(PHP 4, PHP 5, PHP 7)

is_executableIndique si le fichier est exécutable

Description

is_executable ( string $filename ) : bool

Indique si le fichier est exécutable.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Retourne TRUE si le fichier existe et qu'il est exécutable, FALSE sinon.

Exemples

Exemple #1 Exemple avec is_executable()

<?php

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

if (
is_executable($file)) {
    echo 
$file.' est exécutable';
} else {
    echo 
$file.' n\'est pas exécutable';
}

?>

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().

Voir aussi

  • is_file() - Indique si le fichier est un véritable fichier
  • is_link() - Indique si le fichier est un lien symbolique

add a note add a note

User Contributed Notes 3 notes

up
9
Shyammakwana.me
3 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
4 months 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
5 months ago
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).
To Top