2010-03-15 81 views
1

嘿,我試圖通過PHP在窗口上執行一個程序,該命令在下面發佈。這看起來好像完全通過腳本運行,即使它在手動輸入命令提示符時有效。PHP exec()在窗口不工作

exec('C:\\ffmpeg -i ' . $movedfile . ' -acodec aac -ab 128k -vcodec libx264 -fpre C:\\ffmpeg\\share\\ffmpeg\\libx264-hq.ffpreset -crf 22 -threads 0 -wpredp 0' . $convertedfile); 

有什麼建議嗎?

謝謝!

+2

如果您將東西放入變量並且echo $ var; exec($ var); echod var是否可以工作? – plod 2010-03-15 19:25:21

回答

1
exec('C:\ffmpeg -i .... 

這將意味着您將在您的C:\根目錄中有ffmpeg.exe。我想你的意思

exec('C:\ffmpeg\ffmpeg -i .... 
+0

不,它位於我的C根目錄下進行測試。我也嘗試了什麼建議 – 2010-03-15 19:26:11

+0

$ execvar = exec('C:\\ ffmpeg -i'。$ movedfile。'-acodec aac -ab 128k -vcodec libx264 -fpre C:\\ ffmpeg \\ share \\ ffmpeg \\ libx264-hq.ffpreset -crf 22 -threads 0 -wpredp 0'。$ convertedfile); debug($ execvar); 但在execvar中沒有值 – 2010-03-15 19:28:13

12
  1. 您在年底
  2. 缺少空間,你真的應該使用escapeshellarg()
+1

謝謝,那個空間是導致問題的原因。上帝,有時你只需要另一雙眼睛來查看你的代碼。萬分感謝! – 2010-03-15 19:37:02

+1

@您可以使用左側的複選標記將此答案標記爲已接受。 – 2010-03-15 20:08:47

+0

我也有一個問題,因爲相同的問題.. – 2013-09-17 12:26:05

0

嘗試運行只有命令本身不帶任何選項,看看是否有幫助。此外嘗試運行簡單的第一個 - dir

+0

當我執行目錄,它確實返回結果: 8 Dir(s)549,287,497,728字節免費 – 2010-03-15 19:31:23

+0

所以執行工程。你寫你的ffmpeg +選項的方式存在一些問題。 – dusoft 2010-03-15 19:39:23

0

你檢查權限?假設標準配置,IUSR_MACHINENAME需要對可執行文件,任何源文件/輸出文件以及任何臨時目錄/文件執行讀取和執行權限

+0

OP在WIN下! – dusoft 2010-03-15 19:34:56

+0

是...... IUSR_MACHINENAME是IIS默認用於執行/訪問網站文件的標準Windows系統用戶。 – 2010-03-16 17:14:43