
- PHP - Home
- PHP - Roadmap
- PHP - Introduction
- PHP - Installation
- PHP - History
- PHP - Features
- PHP - Syntax
- PHP - Hello World
- PHP - Comments
- PHP - Variables
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ and $$ Variables
- PHP - Constants
- PHP - Magic Constants
- PHP - Data Types
- PHP - Type Casting
- PHP - Type Juggling
- PHP - Strings
- PHP - Boolean
- PHP - Integers
- PHP - Files & I/O
- PHP - Maths Functions
- PHP - Heredoc & Nowdoc
- PHP - Compound Types
- PHP - File Include
- PHP - Date & Time
- PHP - Scalar Type Declarations
- PHP - Return Type Declarations
- PHP - Operators
- PHP - Arithmetic Operators
- PHP - Comparison Operators
- PHP - Logical Operators
- PHP - Assignment Operators
- PHP - String Operators
- PHP - Array Operators
- PHP - Conditional Operators
- PHP - Spread Operator
- PHP - Null Coalescing Operator
- PHP - Spaceship Operator
- PHP Control Statements
- PHP - Decision Making
- PHP - If…Else Statement
- PHP - Switch Statement
- PHP - Loop Types
- PHP - For Loop
- PHP - Foreach Loop
- PHP - While Loop
- PHP - Do…While Loop
- PHP - Break Statement
- PHP - Continue Statement
- PHP Arrays
- PHP - Arrays
- PHP - Indexed Array
- PHP - Associative Array
- PHP - Multidimensional Array
- PHP - Array Functions
- PHP - Constant Arrays
- PHP Functions
- PHP - Functions
- PHP - Function Parameters
- PHP - Call by value
- PHP - Call by Reference
- PHP - Default Arguments
- PHP - Named Arguments
- PHP - Variable Arguments
- PHP - Returning Values
- PHP - Passing Functions
- PHP - Recursive Functions
- PHP - Type Hints
- PHP - Variable Scope
- PHP - Strict Typing
- PHP - Anonymous Functions
- PHP - Arrow Functions
- PHP - Variable Functions
- PHP - Local Variables
- PHP - Global Variables
- PHP Superglobals
- PHP - Superglobals
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP File Handling
- PHP - File Handling
- PHP - Open File
- PHP - Read File
- PHP - Write File
- PHP - File Existence
- PHP - Download File
- PHP - Copy File
- PHP - Append File
- PHP - Delete File
- PHP - Handle CSV File
- PHP - File Permissions
- PHP - Create Directory
- PHP - Listing Files
- Object Oriented PHP
- PHP - Object Oriented Programming
- PHP - Classes and Objects
- PHP - Constructor and Destructor
- PHP - Access Modifiers
- PHP - Inheritance
- PHP - Class Constants
- PHP - Abstract Classes
- PHP - Interfaces
- PHP - Traits
- PHP - Static Methods
- PHP - Static Properties
- PHP - Namespaces
- PHP - Object Iteration
- PHP - Encapsulation
- PHP - Final Keyword
- PHP - Overloading
- PHP - Cloning Objects
- PHP - Anonymous Classes
- PHP Web Development
- PHP - Web Concepts
- PHP - Form Handling
- PHP - Form Validation
- PHP - Form Email/URL
- PHP - Complete Form
- PHP - File Inclusion
- PHP - GET & POST
- PHP - File Uploading
- PHP - Cookies
- PHP - Sessions
- PHP - Session Options
- PHP - Sending Emails
- PHP - Sanitize Input
- PHP - Post-Redirect-Get (PRG)
- PHP - Flash Messages
- PHP AJAX
- PHP - AJAX Introduction
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - AJAX RSS Feed Example
- PHP XML
- PHP - XML Introduction
- PHP - Simple XML Parser
- PHP - SAX Parser Example
- PHP - DOM Parser Example
- PHP Login Example
- PHP - Login Example
- PHP - Facebook Login
- PHP - Paypal Integration
- PHP - MySQL Login
- PHP Advanced
- PHP - MySQL
- PHP.INI File Configuration
- PHP - Array Destructuring
- PHP - Coding Standard
- PHP - Regular Expression
- PHP - Error Handling
- PHP - Try…Catch
- PHP - Bugs Debugging
- PHP - For C Developers
- PHP - For PERL Developers
- PHP - Frameworks
- PHP - Core PHP vs Frame Works
- PHP - Design Patterns
- PHP - Filters
- PHP - JSON
- PHP - Exceptions
- PHP - Special Types
- PHP - Hashing
- PHP - Encryption
- PHP - is_null() Function
- PHP - System Calls
- PHP - HTTP Authentication
- PHP - Swapping Variables
- PHP - Closure::call()
- PHP - Filtered unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - Expectations
- PHP - Use Statement
- PHP - Integer Division
- PHP - Deprecated Features
- PHP - Removed Extensions & SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI Process
- PHP - PDO Extension
- PHP - Built-In Functions
PHP Filesystem is_executable() Function
The PHP Filesystem is_executable() function is used to determine whether a given file is executable or not. The file path is the only input required for this function.
On POSIX systems (like Linux and macOS), a file represents executable if the executable bit is set in its permissions. To check file permissions, use the ls -l program in your terminal.
With Windows systems, the situation is a little different. It might not always accurately reflect whether a file is executable or not because of how its permissions are handled. It is often advised to use different methods to validate executable files on Windows.
Syntax
Below is the syntax of the PHP Filesystem is_executable() function −
bool is_executable(string $filename)
Parameters
Below are the required parameters of the is_executable() function −
Sr.No | Parameter & Description |
---|---|
1 |
$filename(Required) It is the file path that you want to check. |
Return Value
Returns true if the filename is executable and exists, and false otherwise. If the executable bit is set in the file permissions, then a file is executable on POSIX systems.
PHP Version
The is_executable() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7 and PHP 8.
Example
We have used the PHP Filesystem is_executable() function to check that the given file is executable or not.
<?php // Mention the file path here $file = '/PhpProjects/myfile.sh'; if (is_executable($file)) { echo $file.' is executable'; } else { echo $file.' is not executable'; } ?>
Output
Here is the outcome of the following code −
/PhpProjects/myfile.sh is executable
Example
The code example below shows how you can use PHP's is_executable() function to check whether a file has executable rights. The line $file = "/Applications/XAMPP/xamppfiles/bin/perl"; assigns a path to the variable $file. This specific path opens the perl executable on a computer running XAMPP.
<?php //mention your path here $file = "/Applications/XAMPP/xamppfiles/bin/perl"; // Replace with path to an actual executable on your system if (is_executable($file)) { echo "The file '$file' is executable."; } else { echo "The file '$file' is not executable (unexpected)."; } ?>
Output
This will produce the following result −
The file '/Applications/XAMPP/xamppfiles/bin/perl' is executable.
Example
In this PHP code, we will use is_executable() function to check a file path that likely does not present. So the is_executable() function will typically return false in this case, showing that the file does not exist or it is not executable.
<?php //Mention your path here $file = "/Users/Desktop/My Docs/PHP/PhpProjects/index.php"; if (is_executable($file)) { echo "The file '$file' is executable (unexpected)."; } else { echo "The file '$file' does not exist or is not executable."; } ?>
Output
This will generate the below result −
The file '/User/PHP/PhpProjects/index.php' does not exist or is not executable.
Example
This sample shows how you can use clearstatcache() function with is_executable() function. Let us say you use chmod to copy changing the file's permissions and then verify that the file is executable. Because is_executable() caches results, the permission change might not be reflected right away.
<?php // Mention multiple paths here $file = "/PhpProjects/script.sh"; // Modify this path to an actual file // Simulate permission change (replace with your permission modification logic) chmod($file, 0755); // Grant all permissions (modify as needed) if (is_executable($file)) { echo "The file '$file' is executable."; } else { echo "The file '$file' is not executable."; // Clear cache and re-check (uncomment if needed) clearstatcache($file); if (is_executable($file)) { echo "Executable after clearing cache (possible race condition)"; } } ?>
Output
This will produce the following output −
#Script Exists and Initially Executable The file '/PhpProjects/script.sh' is executable. #Script Exists but Not Initially Executable The file '/PhpProjects/script.sh' is not executable. #Script Does not Exist The file '/PhpProjects/script.sh' is not executable.
Note
Similar to the Win API GetBinaryType(), files ending in.bat or .cmd are also identified as executable on Windows if they are valid executables. This is as a result of Backward Compatibility's mandatory behavior. Prior to PHP 7.4.0, every non-empty file ending in .exe or .com was considered executable. Remember that PATHEXT is unrelated to is_executable().
Summary
The is_executable() function is a powerful function for checking the given file is a executable or not in PHP. PHP saves the results of is_executable() in a cache to improve performance. This means that if you call the function more than once with the same filename, it will return the cached result rather than rechecking the file system.