这对我来说很奇怪。我想知道为什么。我编写了一个 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解释器。