|
Posted by ZeldorBlat on 12/11/06 01:08
Sam wrote:
> hi,
>
> i've been trying to create a php script that writes some text to a
> file, then runs the perl interpreter on the file and shows the output.
> it works ok when valid perl is written to the file, so if i use 'print
> "hello world";' then it outputs 'hello world'. the problem is, if i
> enter invalid perl code, such as 'blahblahblah;', it outputs nothing.
> i'd like the php script to be able to get the error/output. does anyone
> know of a way to do this?
>
> thanks in advance.
exec() only captures the contents of stdout, not stderr. When you send
invalid code to your perl interpreter, the errors are likely coming
back on stderr.
One solution would be to redirect stderr to stdout on the fly:
$command = 'ls';
exec($command . ' 2>&1', $out);
Another (more complicated) solution is to use proc_open() and set up
pipes to read from stdout and stderr.
Navigation:
[Reply to this message]
|