2012-01-17 106 views
1

我想通过php脚本运行.exe(C++)文件。我试过exec命令的非常不同的组合,但是我的计划返回-2(argv的< 6)或阵列(?),现在我试着用了shell_exec从php传递多个参数到shell

<?php 

$params = array ('nnn.jpg', 'fff.jp2', '300', '300', '50'); 
$params_string = implode(" ", $params); 

shell_exec('demo.exe '.$params_string); 
echo 'demo.exe '.$params_string 
?> 

,但它不是工作压力太大......我回应我使用的字符串,它只是没关系

我知道它正确地发送参数,但程序退出写错误引起的错误。我已将目标文件夹中的所有烫发改为“完全控制”。也许有一些与PHP设置? (xampp on win7 x64)

demo.exe nnn.jpg fff.jp2 300 300 50 

有什么想法?

我知道它正确地发送参数,但是程序因写入问题而退出。我已将目标文件夹中的所有烫发改为“完全控制”。也许有一些与PHP设置? (上Win7的X64 XAMPP)

ERROR:异常:DEMO.EXE:没有解码委托这种图像格式`kush.jpg” @错误/ constitute.c/ReadImage/532-5

但正如我所说以前,一切顺利通过CMD ...

+0

使用['escapeshellarg'](http://www.php.net/escapeshellarg),但除此之外,它应该只是工作,除非'demo.exe' doesn不明白那些参数。 – Wrikken 2012-01-17 22:53:02

+0

在附注中,5个参数_is_小于6 ... .... – Wrikken 2012-01-17 22:54:28

+0

不错,但是argv [0]保存有关参数数量的信息,并且应该将其计数......无论如何,当我将上面的字符串粘贴到cmd中时,它的工作原理... – sonia 2012-01-17 22:59:32

回答

0

问题是更多的服务器问题,dar7yl几乎是正确的,问题是Apache没有访问imagemagick lib,位于程序文件...我必须更改Apache用户我的帐户,现在一切工作正常;)