小智 54
这将检查函数是否实际工作(权限,权限等):
if(exec('echo EXEC') == 'EXEC'){
echo 'exec works';
}
Run Code Online (Sandbox Code Playgroud)
nc3*_*c3b 38
if(function_exists('exec')) {
echo "exec is enabled";
}
Run Code Online (Sandbox Code Playgroud)
ini_get( 'disable_functions选项')
你真正想做的是ini_get('disable_functions')
用来找出它是否可用:
<?php
function exec_enabled() {
$disabled = explode(',', ini_get('disable_functions'));
return !in_array('exec', $disabled);
}
?>
Run Code Online (Sandbox Code Playgroud)
回答#2浏览:检查"高管"被禁用,这实际上似乎来自于PHP手册页:http://php.net/manual/en/function.exec.php#97187
路径
如果以上返回true(您可以使用exec()),但PHP仍然无法触发脚本,那么很可能您遇到该脚本的路径问题,请执行以下操作进行测试:
print exec('which bash');
Run Code Online (Sandbox Code Playgroud)
然后试试
print exec('which ogr2ogr');
Run Code Online (Sandbox Code Playgroud)
这将在尝试运行它之前检查 exec 是否可用并已启用。如果您运行 exec() 并且该函数不存在或被禁用,则会生成警告。取决于可能呈现给浏览器的服务器设置,并且几乎总是将一行写入日志文件 = 性能下降。
// 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')) != 1
;
if($exec_enabled) { exec('blah'); }
Run Code Online (Sandbox Code Playgroud)