什么是PHP exec()返回值?

时间:2012-02-26 01:48:10

标签: php command-line command-line-interface

我正在尝试使用PHP exec()函数。

  

如果return_var参数与输出参数一起出现,   然后执行命令的返回状态将写入此   变量

如果执行成功,则为0.但是,如果存在错误,则可能是多个其他整数。我似乎无法找到那些整数对应的地方。我应该如何解释我得到的整数?

更新

我本来应该指定这个,但我正在执行另一个PHP脚本。与rsync(在其手册页上有退出值)不同,我找不到PHP的等价物。

所以我正在做的是:

$rv = exec('php file.php', $out, $rv);

3 个答案:

答案 0 :(得分:10)

返回值取决于您使用exec运行的进程/程序。例如,如果你运行grep:

  

如果找到选定的行,则退出状态为0,否则为1   找到。如果发生错误,则退出状态为2.(注意:POSIX   错误处理代码应检查“2”或更高。)

rsync有大约20种不同的错误退出代码,所有这些都在手册页中进行了详细解释:

http://linux.die.net/man/1/rsync

所以是的,它依赖于程序:)

即使您正在运行PHP脚本,退出值也取决于您的程序本身。默认情况下,php脚本将以0退出。如果使用exit函数,则可以返回不同的退出代码:

http://php.net/manual/en/function.exit.php

如果您想通过实验确定您的php程序退出的内容,请在命令行中调用它:

php file.php

然后做

echo $?

这将显示php脚本的退出值。

答案 1 :(得分:2)

恕我直言,在使用exec()函数之前,最好设置output和return_var参数,并通过return_var读取返回代码的执行情况。 不要依赖exec()返回值。

答案 2 :(得分:0)

查找正在执行的命令的手册页。这个值与PHP无关,而与实际命令无关。