2012-01-17 102 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用戶我的帳戶,現在一切工作正常;)