如何在PHP网页上显示已编译的c程序可执行输出

时间:2017-03-09 15:39:19

标签: php shell executable

我有一个在命令行输出数据的程序。

MyProgram -d" 02/02016/12:00-03 / 02/2016/12:00"

我只是试图将Linux上编译过的c程序的结果显示在网页上。除文件(-f文件名)和日期(-d"日期时间或日期时间范围")之外还有其他标志。程序可以使用其他shell命令标志,但它们对文本本身的显示格式没有影响。

这导致在命令行中格式化输出,类似于以下内容。这里的实际结果没什么影响。它在后端以类似于以下的格式显示列表或记录。

我正在尝试将以下结果显示在PHP前端网页上。

------------------------------------------------------------------------------------
<record_id_number_here> <date_stamp_tex><someflag_value><event_type_number>
<Some event status text information>
-----------------------------------------------------------------------------------

我尝试过的事情请参阅下面的test.PHP代码。我正在寻找一种工作方式。

test.php的

<?php
    echo "ran as user:".exec("whoami");
    echo "test1<br />";
    echo exec("MyProgram -f TestLogBinaryFileDate");
    echo "test2<br />";
    echo system("MyProgram -f TestLogBinaryFileDate");
    echo "test3<br />";
    echo popen("MyProgram -f TestLogBinaryFileDate");
    echo "test4<br />";
    echo passthru("MyProgram -f TestLogBinaryFileDate");
    echo "tests calls complete";
?>

每次尝试从每个函数中获取结果都不会阻止PHP继续运行,也不会显示本应存在的任何记录数据文本。

MyProgram我甚至尝试将Apache用户设置为文件编译命令行应用程序的所有者,甚至将应用程序移动到我们根网页test.php所在的网站。

环境Linux(Fedora 22或未来的红帽Linux),Mariadb,PHP 5.6.8

我毫不怀疑,我将更新此信息,了解哪些有效且无效。

我看过有关安全模式目录的帖子,这不能用作安全模式PHP在5.4中被删除而在5.3中已弃用,因此安全模式应该不是问题。

1 个答案:

答案 0 :(得分:1)

http://php.net/manual/en/function.shell-exec.php

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

返回