2

実行可能ファイルにコンパイルされた C プログラムがあります。このプログラムはコンソールから実行できます。このプログラムから Web ブラウザーを介して出力を取得しようとしているので、PHP で exec コマンドを使用しています。PHP スクリプトをコマンド ラインから実行すると問題なく動作しますが、ブラウザから呼び出すと何も入力されません。ここに私のPHPプログラムがあります

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

readcard プログラムには 777 のパーミッションがあります。問題は権限に関係していると思いますか?

4

2 に答える 2

4

出力をキャプチャしていません。の 2 番目の引数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");
}
?>
于 2012-05-09T15:21:44.490 に答える
1

おそらく、スクリプトのリターン コード (ゼロ) をエコーするだけです。出力をファイルにリダイレクトして php から提供するか、出力ストリームを直接 php コードにパイプすることができます。

試す

<?php
    $output = array();
    exec('/var/www/html/./readcard', &$output);
?>
于 2012-05-09T15:20:43.557 に答える