PHP Conference China 2020

is_executable

(PHP 4, PHP 5, PHP 7)

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.

Sürüm Bilgisi

Sürüm: Açıklama
5.0.0 is_executable() işlevi Windows üzerinde de kullanılabilir oldu.

Ö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 edinmek için clearstatcache() işlevine bakınız.

İ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 listesini Desteklenen Protokoller ve Sarmalayıcılar başlığı altında bulabilirsiniz.

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 4 notes

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

It will return TRUE for EXE extensions. I have checked for MSI, but it returns FALSE.
up
1
nick at NOSPAM dot ogredata dot com
7 months 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
divinity76 at gmail dot com
1 year 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
1 year ago
Find no mention of this, but is_executable returns result for owner permissions only (not for group or other).
To Top