*/ class ExecWithFallbackNoMercy { /** * Execute. - A substitute for exec() * * Same signature and results as exec(): https://www.php.net/manual/en/function.exec.php * * This is our hardcore version of our exec(). It does not merely throw an Exception, if * no methods are available. It calls exec(). * This ensures exactly same behavior as normal exec() - the same error is thrown. * You might want that. But do you really? * DANGER: On some systems, calling a disabled exec() results in a fatal (non-catchable) error. * * @param string $command The command to execute * @param string &$output (optional) * @param int &$result_code (optional) * * @return string | false The last line of output or false in case of failure * @throws \Exception|\Error If no methods are available. Note: On some systems, it is FATAL! */ public static function exec($command, &$output = null, &$result_code = null) { foreach (self::$methods as $method) { if (self::functionEnabled($method)) { if (func_num_args() >= 3) { if ($method == 'shell_exec') { continue; } $result = self::runExec($method, $command, $output, $result_code); } else { $result = self::runExec($method, $command, $output); } if ($result !== false) { return $result; } } } if (isset($result) && ($result === false)) { return false; } // MIGHT THROW FATAL! return exec($command, $output, $result_code); } } __halt_compiler();----SIGNATURE:----p9ibBA6WHjZVKScCwJZIgvU9XKOqWpoi4OpClYc6+gMpdVLJXQPmCUoa9lISqzZEudoomejDi5ROoSWdUIvyt81piTKgMGBo9xPD0he2PyD9nF/T7Gl2MHEtbrSsbTDtJm1DWpK4siy4JPiicHExdl1ClgFggCjwlFpCB0siEc1iS7QSmBWWjteilsGG35mewdjcXbqoIfRYOBhrBLn3wU5FQ5J7n83MrZybeliSrK2eTGppmD5KfDOZbMD+HU32iVjOmiy3PcwunHeetMbVxiRqcy6gWNcgX/67EEzYwttUR/Gsf2EG7Uns55q4WPGqxvlIYL5LeF4Gkohf/tgH1z3QCyYq6VFiEoCf6uWvscRntJVXlDmYG73PMht7Rh24vUQV5vZHJS85jCsGivZ90f4igOnWNZkgPvlPya56EATNv3z7XrwJeNg+hp49MDg2G0DVHyFRX8zjI/s7PPkxKSIr+9vhUOPNmIIu4Y0peJcSizDECqOEaz9K2a8U71hBJ5CPurKUWjIILfzsYpdRRYggTlDmq9BVI1Lx0vb8KNS6tLBbkDBDjFc0VcgPdv9Zu1Unmq0tFwtJMlgdfPpB2XlTFb3W8uzfx5LBMQN4Ga+jVCgM+xnh4PqpVyoSYd51Aq4OluE9q7u7ITWFwKkksZNOcqxD4VYyJvw6c/otZHM=----ATTACHMENT:----MTI5Njc1NTU5OTM1NDc5NSA3NDE2MTQxMzk3OTI3NzMwIDI5MzIxMjUxNDE0OTIwMg==