What is the PHP exec() return value?

空扰寡人 提交于 2019-12-23 07:34:00

问题


I am trying to use the PHP exec() function.

If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable.

If the execution was successful, it's 0. However, if there is an error, it can be a multitude of other integers. I can't seem to find anywhere what those integers correspond to. How should I interpret the integer that I get?

Update:

I really should have specified this originally, but I am executing another PHP script. Unlike rsync, which has exit values on its man page, I can't find an equivalent for PHP.

So what I am doing is something like:

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

回答1:


The return value is dependent on the process/program that you ran with exec. For instance, if you ran grep:

The exit status is 0 if selected lines are found, and 1 if not found. If an error occurred the exit status is 2. (Note: POSIX error handling code should check for '2' or greater.)

rsync has about 20 different error exit codes, all painstakingly explained in the man page:

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

so yes, it's program-dependant :)

Even if you're running PHP script, the exit value depends on your program itself. By default php scripts will exit with 0. If you use the exit function you can return different exit codes:

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

If you want to experimentally determine what your php program exits, call it on the command line:

php file.php

then do

echo $?

this will show you the exit value of your php script.




回答2:


IMHO, before use exec() function better set output and return_var parameters and read return code execution by return_var. Don't rely on exec() return value.




回答3:


Look up the manual page for the command that you are executing. This value has nothing to do with PHP but the actual command.



来源:https://stackoverflow.com/questions/9449825/what-is-the-php-exec-return-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!