PHP - How to know if server allows shell_exec

前端 未结 2 569
旧时难觅i
旧时难觅i 2020-12-06 11:12

On some servers, PHP is not allowed to run shell commands via shell_exec. How can I detect if current server allows running shell commands via PHP or not? How can I enable s

2条回答
  •  长情又很酷
    2020-12-06 11:53

    First check that it's callable and then that it's not disabled:

    is_callable('shell_exec') && false === stripos(ini_get('disable_functions'), 'shell_exec');
    

    This general approach works for any built in function, so you can genericize it:

    function isEnabled($func) {
        return is_callable($func) && false === stripos(ini_get('disable_functions'), $func);
    }
    if (isEnabled('shell_exec')) {
        shell_exec('echo "hello world"');
    }
    

    Note to use stripos, because PHP function names are case insensitive.

提交回复
热议问题