I am using exec function to execute the specific executable files in php .
exec ( $file , $output , $return_value ) ;
When the given file executed successfully I am able to get the output in the second argument
by checking the return values , So, It is working fine. But My requirement is when the command execution getting failed due to some reason. I need to get that error message of that executed program . What I need to do to get the error . through second argument we can get the successful output only . Not error message.
Thanks.
The second argument
$outputonly capturesSTDOUTfrom your executable. Error messages are usually sent toSTDERRso that they easily can be written to an error log or similar, but this means that you won’t see them when you callexec.If this is a linux system, you could append
2>&1to your command, in order to redirectSTDERRtoSTDOUT. I haven’t tried this, but it should forward the error messages to your $output variable.Edit:
I’ve read up on it on http://www.php.net/exec, and it seems this would work.
It is also possible to redirect the errors to a temporary file and read them separately.
Edit 2
It seems windows also uses this Bourne style output redirecting syntax, so the examples should work for windows too.
More on input and output streams