1

これは私には奇妙です。なぜだろう。test.phpという名前の別の PHP スクリプトの構文を検証するための PHP スクリプトを作成しました。

 <?php
    print("Hello World");
    ?>

検証スクリプトindex.phpは次のとおりです。

#!/usr/bin/env php
<?php
exec("php -l test.php", $error, $retcode);
echo($retcode . "<br />");
var_dump($error);
?>

コマンドラインphp index.phpで実行すると、次の出力が生成されます。

0<br />array(1) {
  [0]=>
  string(37) "No syntax errors detected in test.php"
}

これは私には良さそうです。ただし、localhost で実行すると、次の出力が生成されます。

#!/usr/bin/env php 5
array(0) { }

$retcode が 5 に設定されているのはなぜですか? また、私はPHP5.3を使用しています

4

1 に答える 1

0

わかりました、私はすでにこれを理解しました。

終了コード情報については、http://linux.die.net/man/1/rsyncを確認してください。

問題は、MAMP で PHP インタープリターを使用する必要があることです。

exec("/Applications/MAMP/bin/php/php5.3.6/bin/php -l $file",$error,$retcode);

以前使用していたのは、OS X の PHP インタープリターでした。

于 2012-06-04T21:50:18.663 に答える