phplinuxexec

How to check if a shell command exists from PHP


I need something like this in php:

If (!command_exists('makemiracle')) {
  print 'no miracles';
  return FALSE;
}
else {
  // safely call the command knowing that it exists in the host system
  shell_exec('makemiracle');
}

Are there any solutions?


Solution

  • On Linux/Mac OS Try this:

    function command_exist($cmd) {
        $return = shell_exec(sprintf("which %s", escapeshellarg($cmd)));
        return !empty($return);
    }
    

    Then use it in code:

    if (!command_exist('makemiracle')) {
        print 'no miracles';
    } else {
        shell_exec('makemiracle');
    }
    

    Update: As suggested by @camilo-martin you could simply use:

    if (`which makemiracle`) {
        shell_exec('makemiracle');
    }