Re: [PHP] Catch STDERR



On Sat, February 17, 2007 2:49 pm, Peter Lauri wrote:
I am executing exec('some cool command', $stdout, $exitcode);

That is fine. I get what I in the beginning wanted. However, now I
need to
catch the STDERR that the command is generating as well. Some of you
might
tell me to redirect STDERR to STDOUT, but that is not possible as I
need to
use the STDOUT as is to automate a process.

I know I can do fwrite(STDERR, 'Output some error\n');

So could I fread(STDERR, SOMESIZE)?

Do you need STDERR to go "out" to, err, wherever it goes, *AND* get it
into your PHP script?

Perhaps 'tee' (man tee) would let you do that.

Or do you just need STDOUT in one variable, and STDERR in another,
both in PHP?

I think you could do something in shell to re-bind STDOUT to some
other file/pipe, and then run your cool command...

$tmpfile = tmpfile(); //I always get this one wrong.
exec("rebind 2 $tmpfile; some cool command', $output, $error);
$stderr = file_get_contents($tmpfile);

It's probably not called 'rebind' but I know it's some shell command
that does this.

Possibly shell-specific, so you may even need to wrap the whole thing
in a 'bash' call.

Another option is to try to write a .sh shell script to get what you
want for STDOUT to go where you want, and THEN just call that script
(which has 'some cool command' at the end) from PHP, and let the
weird-o shell stuff be done in a shell script, and not clutter up your
PHP code with a complex shell script setup/tear-down.

Is there anyone with experience of best way of doing this? Should I
maybe
use proc_open or something similar and then write it to a file, and
then
read that file? Hrm, doesn?t make any sense to do that.

--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some starving artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?
.



Relevant Pages

  • Re: PHP web interface for shell script or command
    ... a configurable shell script or OS command. ... within the javascript window by reloading the window. ... PHP class. ... The root problem I'm trying to work around is I have a shell script ...
    (comp.lang.php)
  • Re: [PHP] Catch STDERR
    ... However, seen as those are pretty complicated and were not available in most php versions ran by most hosts, a lot of people had to come up with other ways around it. ... I am executing exec('some cool command', $stdout, $exitcode); ... www.dwsasia.com - company web site ...
    (php.general)
  • RE: [PHP] Catch STDERR
    ... I will either use this or redirect STDERR to a file and read it from there. ... Subject: [PHP] Catch STDERR ... Or do you just need STDOUT in one variable, and STDERR in another, ... Another option is to try to write a .sh shell script to get what you ...
    (php.general)
  • Re: [PHP] Catch STDERR
    ... into your PHP script? ... Or do you just need STDOUT in one variable, and STDERR in another, ... Another option is to try to write a .sh shell script to get what you ...
    (php.general)
  • Re: Using spawn() to capture output of child process
    ... The native i5/OS command environment is a different animal than *IX. ... STDOUT; i.e. THATCMD output to *PRINT likely uses a Printer File ... invoked the same shell script as in the example and it worked. ...
    (comp.sys.ibm.as400.misc)