Я пишу веб-страницу в php, которая предоставит некоторые полезные инструменты и информацию, связанную с сервером minecraft. Я работаю над «индикатором состояния», системой, чтобы обнаружить, что с сервером что-то не так. Одной из частей этой системы является использование shell_exec для проверки наличия серверного приложения в системе. Я использую preg_match, чтобы проверить, показывает ли результат shell_exec, что работает серверное приложение. Проблема в том, что независимо от того, что я делаю, preg_match, похоже, всегда возвращает false, что указывает на то, что произошла ошибка. Я не могу найти никаких подробностей о том, что именно может быть этой ошибкой.preg_match возвращает false
function get_server_app_status($appName)
{
if (preg_match($appName, shell_exec('ps aux | grep ' . $appName . ' | grep -v grep')) != 0)
{
return true;
}
else
{
return false;
}
}
Я проверил, что shell_exec возвращает то, что я хочу, чтобы по толкая его в переменную и проверять это значение с помощью отладчика, а также проверки $ APPNAME. Оба являются строками и имеют значения, которые я им хочу. Я также проверил, что preg_match возвращает то же самое, и возвращает false, а не только ноль.
Вы можете предоставить нам часть своего кода? –
просто для подтверждения, это вернет true, если строка, которую вы пытаетесь сопоставить, находится в начале строки ввода – JamesHalsall
. Вы можете найти более сжатый способ записи 'if (boolean_expression) {return true; } else {return false; } '... –