PHP exec - etkinse devre dışı kontrol

3 Cevap php

I exec () etkin veya bir sunucu üzerinde özürlü ise bir php komut dosyası kontrol etmek için bir yol olup olmadığını bilmek istiyorum ..

Teşekkürler!

3 Cevap

Fonksiyonu aslında (izinler, haklar, vb) çalışır eğer bu kontrol edecektir:

if(exec('echo EXEC') == 'EXEC'){
    echo 'exec works';
}

Bu exec mevcut ve çalıştırmak çalışırken ÖNCE etkin olup olmadığını kontrol edecektir. Eğer exec () çalıştırın ve eğer işlevi yoksa veya bir uyarı oluşacaktır devre dışı bırakılır. Tarayıcıya hale gelebilir ve neredeyse her zaman bir günlük dosyası = performans düşüşüne bir satır yazacak sunucu ayarlarına bağlı.

    // Exec function exists.
    // Exec is not disabled.
    // Safe Mode is not on.
    $exec_enabled =
         function_exists('exec')                                            &&
         !in_array('exec', array_map('trim',explode(', ', ini_get('disable_functions'))))     &&
                  !(strtolower( ini_get( 'safe_mode' ) ) != 'off')
         ;


if ($exec_enabled) { exec('blah'); }

Bu bir işlev etkin olup olmadığını tespit etmek için yapılan bazı çirkin kodudur.

function is_enabled($f)
{
    if($f=='ini_get')return@ini_get('a')===false;
    return(($l=@ini_get('disable_functions'))===null||!is_callable($f)||!function_exists($f)||!in_array($f,array_walk('trim',explode(',',$l)));
}

//Usage example:
print_r(is_enabled('str_split'));//true or null if ini_get() is disabled