これは私には奇妙です。なぜだろう。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を使用しています