2016-06-21 81 views
1

我正在执行一个C程序,即'.exe',它是来自PHP的可执行文件。从PHP执行C程序

我有一个HTML接口,每当我点击一个按钮时调用一个PHP文件。

在PHP上,它调用了一个shell脚本。 所以在PHP中,我使用以下命令:

./import -file.txt 

其中import是我的可执行的C程序.exe和file.txt的是:

echo shell_exec('sh auto_script.sh'); 

的外壳文件,如下所示执行程序的.exe我现在很难编码的输入。

可执行文件“导入”与调用的php文件存储在相同的目录中。

当我在终端上执行shell脚本时,它会以必要的输出正确执行。

但是,当我尝试从PHP执行它不起作用。截至目前,我已完全授予文件。

+1

脚本'cd'是否包含'import'程序的目录? '。/'表示在当前工作目录中查找程序。 – Barmar

+1

你需要引用'shell_exec()'的参数。 – Barmar

+0

是的导入是一个可执行文件,它与php文件位于同一个目录中,而且我在shell_exec中引用了参数。 –

回答

0

[ shell_exec ]手册页的快速检查说shell_exec具有以下定义:

串了shell_exec(字符串$ CMD)

这意味着参数应该是一个字符串,它的确是手段它应该在引号内。顺便说一句,你不需要调停脚本这里反正,所以做:

echo shell_exec('./import "-file.txt"'); //Using relative paths 

话虽如此放置二进制文件的脚本文件夹是一个坏主意,但我希望上面可以帮助你,让你去。

+0

当我通过shell脚本执行它时,C程序抛出了segmentaion错误,但是当我单独执行它时,它不会抛出任何错误 –