By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,401 Members | 820 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,401 IT Pros & Developers. It's quick & easy.

How do I get exec() to display errors?

P: n/a
I would like to display error messages put out by shell commands. For
example the following code gives no output and the array $output has no
values:

<?php
exec( 'lss', $output );
var_dump( $output );
?>

...assuming that I don't have an executable called 'lss' on my computer.

The equivalent on the command line displays the error message:

# php -r 'exec( "lss", $output );'
# sh: lss: command not found

How do I get the exec() command to display errors?

I've tried `exec( 'lss 2/dev/stout', $output );' with no success.

Jul 7 '06 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Robert S schreef:
I would like to display error messages put out by shell commands. For
example the following code gives no output and the array $output has no
values:

<?php
exec( 'lss', $output );
var_dump( $output );
?>
How about just:
<?php
$strRawOutput = exec( 'lss', $output );
var_dump($strRawOutput);
?>

This only retrieves the last output line though. If you need more then
you should use passthru() instead of exec().

HTH,
Peter.
--
http://www.phpforums.nl
Jul 8 '06 #2

P: n/a
How about just:
<?php
$strRawOutput = exec( 'lss', $output );
var_dump($strRawOutput);
?>
This still doesn't print the error message. It only prints whatever is
directed to stdout.

Jul 8 '06 #3

P: n/a
Robert S wrote:
I would like to display error messages put out by shell commands. For
example the following code gives no output and the array $output has no
values:

<?php
exec( 'lss', $output );
var_dump( $output );
?>

..assuming that I don't have an executable called 'lss' on my computer.

The equivalent on the command line displays the error message:

# php -r 'exec( "lss", $output );'
# sh: lss: command not found

How do I get the exec() command to display errors?

I've tried `exec( 'lss 2/dev/stout', $output );' with no success.
2redirection is a shell function, not the OS. You'll need to use
shell_exec() to allow the redirection.

Also, the syntax should be 2>&1. That way if stdout is also redirected
stderr will follow.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jul 8 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.