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 — Indique si le fichier est exécutable
Description
bool is_executable
( string $filename
)
Indique si le fichier est exécutable.
Liste de paramètres
- filename
-
Chemin vers le fichier.
Valeurs de retour
Retourne TRUE si le fichier existe et qu'il est exécutable, FALSE sinon.
Historique
| Version | Description |
|---|---|
| 5.0.0 | is_executable() devient disponible sous Windows |
Exemples
Exemple #1 Exemple avec is_executable()
<?php
$file = '/home/vincent/somefile.sh';
if (is_executable($file)) {
echo $file.' est exécutable';
} else {
echo $file.' n\'est pas exécutable';
}
?>
Erreurs / Exceptions
En cas d'échec, une alerte de type E_WARNING sera émise.
Notes
Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.
Astuce
Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Liste des protocoles et des gestionnaires supportés pour connaître les protocoles supportant la famille de fonctionnalités de stat().
Buuyo
06-Aug-2004 05:51
david at littlesystems dot com dot au
02-Jun-2002 01: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.
