1

这对我来说很奇怪。我想知道为什么。我编写了一个 PHP 脚本来验证另一个名为test.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 回答