Re: [PHP] Catch STDERR



you could instead use the proc_* functions to do this. 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. The most used way is indeed what you described. A simple:
$t = tempnam();
exec('/bin/SomeCommand 2>'.$t);
$stderror = file_get_contents($t);

is what most scripts seem to use currently
- tul

Frank Arensmeier wrote:
Spontaneously, my suggestion would to pipe the STDERR output from your command to a file. I have to admit that this doesn't feel like the most efficient solution since you would involve some reading / writing to your filesystem.

Regards.
//frank

17 feb 2007 kl. 21.49 skrev Peter Lauri:

Hi,

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)?

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.

Best regards,
Peter Lauri

www.dwsasia.com - company web site
www.lauri.se - personal web site
www.carbonfree.org.uk - become Carbon Free

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

.



Relevant Pages

  • RE: [PHP] Catch STDERR
    ... Best regards, ... www.dwsasia.com - company web site ... I am executing exec('some cool command', $stdout, $exitcode); ... tell me to redirect STDERR to STDOUT, but that is not possible as I ...
    (php.general)
  • RE: [PHP] PHP Command line script
    ... www.dwsasia.com - company web site ... [PHP] PHP Command line script ... I am attempting to run a script that will run from the command line ...
    (php.general)
  • Re: [PHP] Catch STDERR
    ... tell me to redirect STDERR to STDOUT, but that is not possible as I ... into your PHP script? ... It's probably not called 'rebind' but I know it's some shell command ... Another option is to try to write a .sh shell script to get what you ...
    (php.general)
  • Re: system() returns the last line of output twice
    ... ls already emits to STDOUT. ... you have the output from the 'ls' command and then 'echo' echoing the ... PHP then prints the output of the command ...
    (comp.lang.php)
  • Catch STDERR
    ... I am executing exec('some cool command', $stdout, $exitcode); ... catch the STDERR that the command is generating as well. ... www.dwsasia.com - company web site ...
    (php.general)