私は、ミニクラフトサーバーに関連する便利なツールと情報を提供するWebページをphpで作成しています。私は "状態インジケータ"、サーバーに何か問題があるかどうかを検出するシステムに取り組んでいます。このシステムの一部の1つは、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が返すのと同じ方法をチェックして、偽ではなくゼロを返します。あなたのコードスニペットで
あなたのコードをいくつか教えていただけますか? –
これは、一致する文字列が入力文字列の先頭にある場合にのみtrueを返します。 – JamesHalsall
'if(boolean_expression){trueを返します。 } else {return false; } '... –