2011-06-01 55 views
0

我試圖運行apktool(只是一個工具來解壓android應用程序)在網上使用PHP shell_exec但它不工作。有誰知道這可能是爲什麼?shell_exec與PHP

這是該行代碼實際上是這樣的:

$output = `apktool d -f $file_name`; 

任何建議將幫助我完全不知所措,爲什麼我運行PHP和沒有任何反應。 謝謝!

+2

大概重要來電http://php.net/escapeshellarg – 2011-06-01 21:24:18

+0

是否有錯誤輸出?嘗試使用'exec'函數,如果使用第二個或第三個參數,這將使您可以訪問'apktool'命令的輸出。如果您需要更多幫助,請將輸出放回此處。 – Robin 2011-06-01 21:25:13

+0

apktool通常使用簡單的shell命令'apktool d -f $ file_name'運行,這就是爲什麼我基本上只是複製該命令並將其放入反引號中。我也用'shell_exec'和'exec'嘗試過,目前還沒有。 – Corey 2011-06-01 21:37:37

回答

0

確保您的實際路線是:

$output = shell_exec(`apktool d -f $file_name`); 

這php.ini文件沒有safe_mode打開或有01​​在 的disable_functions指令中列出。

1

檢查您的Web服務器(可能是apache)是否有足夠的權限來執行apktool。包含apktool二進制文件的完整路徑。如果文件名中有空格,請使用單引號。

如果有詳細的命令未執行的細節,請檢查您的Web服務器的日誌。

2

我找到了解決方案。 創建EXEC權限build.sh文件,寫有這樣的代碼:

#!/bin/bash 
export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin/:/usr/sbin/:/bin:/sbin/:/bin/sbin:/usr/local/bin:/usr/X11/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

/usr/local/bin/apktool b -d $1 $2 

- 使用運行./build.sh

<? php shell_exec("/path/to/build.sh $dir $file"); ?>