我很难将网络服务器上可执行文件的输出放入网页中。我希望得到一个简单的“Hello World”。
具体来说,我有一个非常基本的 C 程序,可以打印“Hello World”。我使用 gcc 编译了它,它生成了 HelloWorld.out,我可以从命令行运行它。
然后我有一个基本的 index.php 文件,我在其中尝试使用 passthru() 将 C 程序的结果输出到网页中。 .php 文件如下所示:
<?php passthru('HelloWorld.out'); ?>
我已将 php 和 .out 文件上传到我服务器上的同一目录。但是,index.php 不产生任何输出。我在网上四处看看,有几个地方我可能弄错了......我的总体目标是能够将我的网络服务器上可执行程序的输出嵌入到页面中(不需要是 HelloWorld .out;可能 .out 扩展名在服务器上不起作用?)。或者我可能错误地使用了 passthru();据我了解,这是最准系统的人使用它。
谢谢!
最佳答案
当您告诉操作系统运行没有显式路径的特定可执行文件时,它将使用 PATH
环境变量(以冒号分隔的路径集)来查找它。
典型路径为/bin
、/usr/bin/
等
如果在这些路径中找不到可执行文件,它将抛出错误并放弃。要解决此问题,您有以下选择:
指定可执行文件的绝对路径(即
/path/to/HelloWorld.out
)指定相对于当前目录的路径(即
./HelloWorld.out
)使用PHP创建绝对路径:
passthru(__DIR__ . '/HelloWorld.out');
或者:
passthru(dirname(__FILE__) . '/HelloWorld.out');
最后,您希望执行的文件必须是可执行的,可以使用 chmod
更改权限或将文件路径传递给 sh
。
passthru('/bin/sh ' . dirname(__FILE__) . '/HellWorld.out');
关于php - 在 PHP 页面中打印 .out 文件的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13412661/