尝试从PHP执行C程序并输出到Web浏览器

时间:2012-05-09 15:18:20

标签: php linux

我有一个已编译成可执行文件的C程序。我可以从我的控制台运行这个程序。我试图通过我的Web浏览器从该程序获取输出,所以我在PHP中使用exec命令。当我从命令行执行它时,我的PHP脚本工作正常,但是当我通过浏览器调用它时,我没有输入。这是我的PHP程序

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

readcard程序拥有777个权限。我猜这个问题与权限有关吗?

2 个答案:

答案 0 :(得分:4)

您没有捕获输出。 exec的第二个参数由一个放置输出行的数组组成。

<?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");
}
?>

答案 1 :(得分:1)

你可能只是回显脚本的返回码,它是零。您可以将输出重定向到文件,然后从php提供,或者将输出流直接传递回php代码。

尝试

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