Jochem Maas wrote:
I have been trying to figure out how to use exec to run some
commandline scripts (some perl scripts & mysql in this case) WITH the
output of the commands run via exec being shown on the screen.
neither of these examples have the desired effect:
$output = array(); $exit = 0; exec('apache2ctl graceful', $output,
$exit);
$output = array(); $exit = 0; @exec('apache2ctl graceful', $output,
$exit);
please someone tell me there is a decent way to do this (something to
do with STD input/output redirection or something?) and that I'm not
left with trying something like:
ob_start(); $output = array(); $exit1 = $exit2 = 0; @exec('apache2ctl
graceful', $output, $exit1); ob_end_clean();
... of which I don't even know if it would work.
anyone care to share their clue?
Chances are that the output is being sent to stderr instead of stdout.
You need to redirect stderr output to stdout in the command...
exec('apache2ctl graceful 2>&1', $output, $exit);
Also, in my experience it's better to provide the full path to anything
you shell out to from PHP, especially if it's going to be executed from
a web request.
-Stut
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php