13

さて、私はここでちょっとしたピクルスに出くわしました。PHP の構文エラーを確認する必要があります。コマンドラインから実行する必要があるこのビットに気付きました:

php -l somefile.php

ただし、これを PHP ファイル自体から実行する方法はありますか? $_GET に入力することで関数を使用してこれを達成できると考えていますがparse_str、これがどのように機能するかはよくわかりません。

他の誰かが、token_get_all()php 関数を使用してこれを判断するように私に言いました。

しかし、どのアプローチでもこれを行う方法がわかりませんか?ここで誰かがおそらく始めるためのサンプルコードを教えてもらえますか?? 私は動作しeval()ていましたが、使用する方法はeval($code)ないと思いますが、PHP 構文エラーがある場合はスクリプトを実行する必要はないと思います。

いつものように、これに関するヘルプは大歓迎です!

4

7 に答える 7

5

shell_exec()次のように簡単に実行できます。

$output = shell_exec('php -l /path/to/filename.php');

これにより、コマンド ライン操作の出力が string に表示されます$output

于 2012-08-14T21:10:36.303 に答える
0

私は次のようにします:

$php_file = 'The path to your file';
if(substr(`php -l $php_file`, 0, 16) == 'No syntax errors') {
    // Correct syntax
} else {
    // Error
}
于 2015-12-14T10:12:33.817 に答える
0

php_check_syntaxでうまくいくはずです。PHP >= 5.05 を実行している場合は、実装に関するコメント セクションの最初のコメントを参照してください。

于 2012-08-14T21:03:01.277 に答える