PHP: Hypertext Preprocessor (original) (raw)
is_executable
(PHP 4, PHP 5, PHP 7, PHP 8)
is_executable — Tells whether the filename is executable
Description
Parameters
filename
Path to the file.
Return Values
Returns [true](reserved.constants.php#constant.true)
if the filename exists and is executable, or [false](reserved.constants.php#constant.false)
on error. On POSIX systems, a file is executable if the executable bit of the file permissions is set. For Windows, see the note below.
Errors/Exceptions
Upon failure, an [E_WARNING](errorfunc.constants.php#constant.e-warning)
is emitted.
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';
}?>`
Notes
Note: The results of this function are cached. See clearstatcache() for more details.
Note: On Windows, a file is considered executable, if it is a properly executable file as reported by the Win API
GetBinaryType()
; for BC reasons, files with a .bat or .cmd extension are also considered executable. Prior to PHP 7.4.0, any non-empty file with a .exe or .com extension was considered executable. Note that PATHEXT is irrelevant for is_executable().
See Also
- is_file() - Tells whether the filename is a regular file
- is_link() - Tells whether the filename is a symbolic link
Found A Problem?
5 years 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:
result=isexecutable(result = is_executable(result=isexecutable(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.
`
6 years ago
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).