user813813
user813813

Reputation: 355

Trying to execute a C program from PHP and output to a web browser

I have a C program which has been compiled to an executable. I can run this program from my console. I am trying to get the output from this program through my web browser so I am using the exec command in PHP. My PHP script works fine when I execute it from the command line, but when I call it over a browser I get no input. Here is my PHP program

    <?php
    echo  exec('/var/www/html/./readcard');
    ?>

The readcard program has 777 permissions. I am guess the issue is something to do with permissions?

Upvotes: 2

Views: 2211

Answers (2)

user554546
user554546

Reputation:

You aren't capturing the output. The second argument to exec consists of an array to which the output lines will be placed.

<?php
$output=array();
$rv=0;
exec('/var/www/html/./readcard',$output,$rv);

if($rv!=0)
{
  die("readcard failed, got a return value of $rv\n");
}

foreach($output as $line)
{
  echo("<p>$line</p>\n");
}
?>

Upvotes: 4

petr
petr

Reputation: 2586

You probably just echo the return code of the script, which is zero. You can either redirect the output to a file and then serve that from php, or pipe the output stream directly back to php code.

Try

<?php
    $output = array();
    exec('/var/www/html/./readcard', &$output);
?>

Upvotes: 1

Related Questions