PHP 8.1.0 RC 4 available for testing

is_executable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_executableBir dosyanın çalıştırılabilir bir dosya olup olmadığını söyler

Açıklama

is_executable(string $dosyaismi): bool

Belirtilen dosyanın çalıştırılabilir bir dosya olup olmadığını söyler.

Değiştirgeler

dosyaismi

Dosyanın yolu.

Dönen Değerler

dosyaismi ile belirtilen dosya mevcutsa ve çalıştırılabilir bir dosya ise true aksi takdirde false döndürür.

Hatalar/İstisnalar

Başarısızlık durumunda bir E_WARNING çıktılanır.

Örnekler

Örnek 1 - is_executable() örneği

<?php

$dosya 
'/home/vincent/somefile.sh';

if (
is_executable($dosya)) {
    echo 
$dosya.' çalıştırılabilir';
} else {
    echo 
$dosya.' çalıştırılamaz';
}

?>

Notlar

Bilginize: Bu işlevin sonuçları önbelleğe kaydedilir. Daha ayrıntılı bilgi clearstatcache() işlevinde bulunabilir.

İpucu

PHP 5.0.0 sürümünden itibaren bu işlev bazı URL sarmalayıcıları ile kullanılabilmektedir. stat() ailesini destekleyen sarmalayıcıların listesi Desteklenen Protokoller ve Sarmalayıcılar başlığı altında bulunabilir.

Ayrıca Bakınız

  • is_file() - Bir dosyanın sıradan bir dosya olup olmadığını söyler
  • is_link() - Bir dosyanın sembolik bağ olup olmadığını söyler

add a note add a note

User Contributed Notes 5 notes

up
12
Shyammakwana.me
5 years ago
For windows users,

It will return TRUE for EXE extensions. I have checked for MSI, but it returns FALSE.
up
2
nick at NOSPAM dot ogredata dot com
1 year ago
This function returns the value for the process PHP is executing under.

/var/somebody/files was only executable by owner (700).

It contained world-readable files, but without execute permission, PHP could not access the directory to download the files.

is_executable() returned false.

Making the dir world-executable (701) gave access to PHP.  The download worked. And is_executable() returned true.

I assume that if I added PHP to the group of the folder and gave the group executable permission, that would also work.
up
1
Anonymous
1 year ago
Under windows, it seems to returns always false for directories.

I.e

<?php
$dir
= __DIR__;
$result = is_executable($dir) ? 'true' : 'false';

if(
$result){
  echo
$result;
}
?>

So do NOT use this to check if a folder is transversable because it will be system dependant code.
up
1
divinity76 at gmail dot com
2 years ago
is_executable() does not check the PATH environment variable, so if your current working dir is /dir/ and you have /bin/ in your PATH env and the file /bin/ffmpeg exists, then you can still run shell_exec("ffmpeg"), but is_executable("ffmpeg") will return false.

if you're looking for a version of is_executable that also considers the PATH environment variable, then try this:

<?php

function is_executable_pathenv(string $filename): bool
{
    if (
is_executable($filename)) {
        return
true;
    }
    if (
$filename !== basename($filename)) {
        return
false;
    }
   
$paths = explode(PATH_SEPARATOR, getenv("PATH"));
    foreach (
$paths as $path) {
        if (
is_executable($path . DIRECTORY_SEPARATOR . $filename)) {
            return
true;
        }
    }
    return
false;
}
up
-1
telezhkin at gmail dot com
2 years ago
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).
To Top