tags:

views:

45

answers:

2

Hi, what I want to do is have a PHP script run a program and have it retrieve data somehow from it. For instance the program would parse data from a file and return the data for the PHP script to display.

So far I know to call exec("Program.exe"); but would I have to make it create a file with the data then have the PHP script call fopen and get it that way? Is there a better way to do it? Thanks

+5  A: 

As per the manual page for exec(), you can pass an array to it as another parameter, and that array will be filled with the lines of output from the program.

exec("Program.exe", $results);
// $results is now an array where each element is a line of output
Amber
kaykun
You can't `echo` an array - you need to use something like `print_r()` to show the items inside the array.
Amber
A: 

If you need just the output of a command and/or can pass input to the external command on the command line, then exec() or passthru() is the way to go.

If you need to be able to feed lengthier amounts of data into the external command than you can provide on a command line, you will need to pass it in via STDIN. I recommend using proc_open() which lets you call an external command, but also communicate with it through the standard input/output streams. You can see an example usage of it at http://www.php.net/manual/en/function.proc-open.php

Timothy