Ну, есть только два способа, которыми его можно отключить: safe_mode
или disable_functions
.
Таким образом, вы можете сделать проверку как:
function isAvailable($func) {
if (ini_get('safe_mode')) return false;
$disabled = ini_get('disable_functions');
if ($disabled) {
$disabled = explode(',', $disabled);
$disabled = array_map('trim', $disabled);
return !in_array($func, $disabled);
}
return true;
}
Да, и function_exists
должен возвращать true, поскольку это основная функция (в противном случае вы могли бы подделать базовую функцию и вызвать реальный хаос на хосте) ... Следовательно, is_callable
также должен вернуть true(так как функция существует).Таким образом, единственный способ сказать, это проверить настройки ini или вызвать его ...
Редактировать: Еще одна вещь, которую нужно отметить, есть несколько способов выполнения оболочкикоманды.Выезд: