从php调用C程序并读取程序输出

Nir*_*han 7 php c linux

有人可以解释一下如何从PHP脚本运行C程序并将C程序的控制台输出存储到php变量中吗?

我的程序使用C printf()函数在控制台上打印一个整数值.我想读取这个值并将其存储在php变量中.
我正在使用linux.我尝试过exec,但是一旦回显到页面,它就不会显示变量值

这是我正在使用的代码片段.

exec("Release/matchface image1.jpg image2.jpg", $output);
while( list(,$row) = each($output) ) {
  echo $row. "<br />";
} 
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 13

你会想要使用这个shell_exec()函数(引用):

通过shell执行命令并将完整输出作为字符串返回

这意味着看起来像这样:

$output = shell_exec('/path/to/your/program');
Run Code Online (Sandbox Code Playgroud)


或者,您可以使用backtick operator- 这将完全相同的事情(引用):

PHP将尝试作为shell命令执行反引号的内容; 输出将被返回

而且,在代码中:

$output = `/path/to/your/program`;
Run Code Online (Sandbox Code Playgroud)

  • 我知道在这个例子中并非如此,但只是提醒一句:如果你从shell_exec()中的用户那里获取参数,你应该强烈考虑使用escapeshellcmd()函数(例如shell_exec('ls -latr') .swortshellcmd($ arg);)否则,如果用户输入的字段arg是'; rm\*.\*',它们将删除所有文件,或者注入他们希望的任何代码...... (3认同)
  • @Niroshan:不一定意味着它在`STDOUT`上打印。它可能正在`STDERR`上打印。并确保您的路径正确。不要忘记环境是不同的。 (2认同)