dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

is_file> <is_dir
[edit] Last updated: Fri, 28 Jun 2013

view this page in

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



is_file> <is_dir
[edit] Last updated: Fri, 28 Jun 2013
 
add a note add a note User Contributed Notes is_executable - [3 notes]
up
0
david at littlesystems dot com dot au
11 years ago
to test whether the directory /home/david is executable (regardless of whether it is readable or writeable), issue the command:
$my_isWriteable = @file_exists("/home/david/.")

the @ gets rid of the warning when this command fails when the directory is not executable.
up
-2
DaveRandom
5 months ago
is_executable() cannot necessarily be relied upon to return sensible results on Windows. Unlike *nix, it does not check permissions, it uses the Windows API call GetBinaryType(), which checks specifically whether the file path is a binary executable file.

This means, crucially, that it will never return TRUE for batch files or other scripts that could otherwise be executed directly when called through the shell.

PHP source code ref: http://lxr.php.net/xref/PHP_5_4/TSRM/tsrm_win32.c#213

GetBinaryType() documentation: http://msdn.microsoft.com/en-gb/library/windows/desktop/aa364819(v=vs.85).aspx
up
-2
Buuyo
8 years ago
The change doesn't appear to be documented, so I thought I would mention it. In php5, as opposed to php4, you can no longer rely on is_executable to check the executable bit on a directory in 'nix. You can still use the first note's method to check if a directory is traversable:
     @file_exists("adirectory/.");

 
show source | credits | stats | sitemap | contact | advertising | mirror sites