问题 什么是PHP exec()返回值?


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

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

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

更新:

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

所以我正在做的是:

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

8806
2018-02-26 01:48


起源



答案:


返回值取决于您使用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脚本的退出值。


10
2018-02-26 01:57



是的,我应该最初指定。我正在执行另一个PHP脚本。 - burger
然后你可能必须执行phpX并调用你的第二个PHP脚本,就像在crontab中一样。 - tony gil


答案:


返回值取决于您使用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脚本的退出值。


10
2018-02-26 01:57



是的,我应该最初指定。我正在执行另一个PHP脚本。 - burger
然后你可能必须执行phpX并调用你的第二个PHP脚本,就像在crontab中一样。 - tony gil


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


2
2018-02-26 02:05





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


0
2018-02-26 01:56



你是否?手册页 php 没有返回值部分。 - qdii