什么是 PHP exec() 返回值?

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

如果return_var参数与输出参数一起存在,则执行命令的返回状态将写入此变量。

如果执行成功,则为 0。但是,如果存在错误,则它可能是大量其他整数。我似乎在任何地方都找不到这些整数对应的内容。我应该如何解释我得到的整数?

更新:

我真的应该最初指定这个,但我正在执行另一个PHP脚本。与 rsync 不同,rsync 在其手册页上具有退出值,我找不到 PHP 的等效值。

所以我正在做的是这样的:

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

答案 1

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

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

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

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

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

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

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

如果你想通过实验确定你的php程序退出什么,请在命令行上调用它:

php file.php

然后做

echo $?

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


答案 2

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


推荐