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/.");
is_executable
(PHP 4, PHP 5)
is_executable — Prüft, ob der Dateiname ausführbar ist
Beschreibung
bool is_executable
( string
$filename
)Prüft, ob der Dateiname ausführbar ist.
Parameter-Liste
-
filename -
Pfad zur Datei.
Rückgabewerte
Gibt TRUE zurück, wenn der Dateiname existiert und ausführbar ist,
oder FALSE im Fehlerfall.
Changelog
| Version | Beschreibung |
|---|---|
| 5.0.0 | is_executable() wurde unter Windows verfügbar |
Beispiele
Beispiel #1 is_executable()-Beispiel
<?php
$file = '/home/vincent/somefile.sh';
if (is_executable($file)) {
echo $file.' ist ausführbar';
} else {
echo $file.' ist nicht ausführbar';
}
?>
Fehler/Exceptions
Im Fehlerfall wird eine E_WARNING ausgegeben.
Anmerkungen
Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().
Tipp
Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle and Wrappers nach, welcher Wrapper die Funktionalität von stat() unterstützt.
is_executable
Buuyo
06-Aug-2004 12:51
06-Aug-2004 12:51
david at littlesystems dot com dot au
02-Jun-2002 08:38
02-Jun-2002 08:38
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.
drtebi at hotmail dot com
09-Feb-2001 05:12
09-Feb-2001 05:12
[Editor's Note: This is the expected behavior (at least on most Unix-like systems). If a directory is not executable, then you cannot get details on the files in the directory - this includes the permissions.
--zak@php.net]
This does not work on directories!
look at this example:
if(is_file("foo/bar"))
print "found it";
if "bar" exists, but directory "foo" is not executable, you will NOT get "found it" as result.