PHP shell-script和PHP on MAMP之间的区别


Difference between in PHP shell-scripts and PHP on MAMP?

这对我来说很奇怪。我想知道为什么。我编写了一个 PHP 脚本来验证另一个名为 test 的 PHP 脚本的语法.php

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

验证脚本索引.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"
}

这对我来说看起来不错。但是,当我在本地主机上运行时,它会生成以下输出:

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

为什么$retcode设置为 5?另外,我在PHP5.3上

好的,我已经想通了。

检查 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解释器。