2

私の index.php ファイルの中から、たとえば、別の PHP ファイルがエラーなしで実行されるかどうかを確認したい (そうであれば、それを含めます)。実際に失敗して致命的なエラーを返す場合は、明らかにしたいと思います。含めないようにします。助言がありますか?ありがとう...

4

3 に答える 3

1

CLIの-l パラメーターを使用できます。php

php -l filename.php

出力を解析します。

$o = `php -l filename.php`;

if (strpos($o, 'No syntax errors detected') !== false) {
    echo 'No errors';
} else {
    echo 'There are errors';
}
于 2012-11-05T00:49:34.063 に答える
0

おそらく、2 番目のファイルを個別に実行したくないでしょう。そうは言っても、あなたは2つのことのうちの1つを行うことができます...

1.) 本当にそれを個別に実行するインクルードとして使用したい場合は、CURL などで呼び出すことができ、期待される結果または失敗メッセージのいずれかを出力し、それを読み取ってそれに応じて処理することができます。

2.) 関数/クラス/etc の実行を try/catch ステートメントに含めて、発生したエラーを適切に処理します。http://php.net/manual/en/language.exceptions.phpは、この方法でもう少し役立つかもしれません。

于 2012-11-05T00:49:44.250 に答える
0

これにより、共有変数/関数/状態/スコープなどを使用せずに、スクリプトが別のプロセスとして実行されます...

$cmd = 'php file.php';
exec($cmd, $ar, $exit_status);
$wasFatal = $exit_status == 255;

Webサーバーのphp.iniとは異なるphp.iniで実行される可能性が非常に高いため、構成やおそらくphpバージョンの違いを期待してください。

于 2012-11-05T00:54:24.673 に答える