我有一个在命令行输出数据的程序。
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中已弃用,因此安全模式应该不是问题。
答案 0 :(得分:1)
http://php.net/manual/en/function.shell-exec.php
shell_exec - 通过shell执行命令并将完整输出作为字符串
返回