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.
is_executable
(PHP 4, PHP 5)
is_executable — Tells whether the filename is executable
Descrierea
bool is_executable
( string
$filename
)Tells whether the filename is executable.
Parametri
-
filename -
Path to the file.
Valorile întoarse
Returns TRUE if the filename exists and is executable, or FALSE on
error.
Istoria schimbărilor
| Versiunea | Descriere |
|---|---|
| 5.0.0 | is_executable() became available with Windows |
Exemple
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';
}
?>
Erori/Excepții
În cazul eșecului este emis un E_WARNING.
Note
Notă: Rezultatele acestei funcții sunt stocate în cache. Accesați clearstatcache() pentru mai multe detalii.
Sfat
Începând cu PHP 5.0.0 această funcție poate fi utilizată de asemenea cu unele învelișuri URL. Referiți-vă la Supported Protocols and Wrappers pentru a determina care învelișuri susțin familia de funcționalitate stat().
david at littlesystems dot com dot au ¶
10 years ago
DaveRandom ¶
3 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
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/.");
