检查“exec”是否被禁用

2022-08-30 19:33:42

PHP中是否有任何函数可以用来检测该函数是否可用?exec


答案 1
<?php
function exec_enabled() {
  $disabled = explode(',', ini_get('disable_functions'));
  return !in_array('exec', $disabled);
}
?>

编辑:根据Ziagl的评论修复了爆炸。


答案 2

以下函数更可靠。它处理函数名称之间有 0 个或更多空格的值,检查 suhosin 修补程序的黑名单设置,覆盖 ,并存储答案以供将来参考。disabled_functionssafe_mode

function is_exec_available() {
    static $available;

    if (!isset($available)) {
        $available = true;
        if (ini_get('safe_mode')) {
            $available = false;
        } else {
            $d = ini_get('disable_functions');
            $s = ini_get('suhosin.executor.func.blacklist');
            if ("$d$s") {
                $array = preg_split('/,\s*/', "$d,$s");
                if (in_array('exec', $array)) {
                    $available = false;
                }
            }
        }
    }

    return $available;
}

推荐