2012-07-10 137 views
1
exec ("C:/Lame/sox \"C:/1/2.wav\" -t wav \"C:/1/2.rev\" reverse"); 

使用該代碼使用音頻後期處理工具來反轉聲音文件。有一個輸出,但該文件大約是它的大小的1/5,我無法播放它。基本上,它使一個文件,但它不是一個,如果我這樣做在命令提示符下我會得到:PHP執行不會給出與cmd相同的結果

C:/Lame/sox "C:/1/2.wav" -t wav "C:/1/2.rev" reverse 

就這樣,我得到了我想要的結果,我能玩REV文件。

任何人都知道爲什麼會發生這種情況?

+0

你用同一個用戶執行它們嗎? – 2012-07-10 15:13:54

+0

是的。一切正常。我可以執行其他命令,例如: exec(「C:/ Lame/sox \」C:/1/2.wav \「-t wav \」C:/1/2.rev \「pitch 1000」) ; 而且這將工作。只有這個相反的問題是它的問題,但它在cmd中起作用。 – Dragonfly 2012-07-10 15:42:13

+0

您是否嘗試將數組作爲輸出? http://www.php.net/manual/en/function.exec.php – 2012-07-10 16:22:36

回答

0

發現問題。這是一個許可問題。

所有其他後處理命令的工作原理,因爲它寫入該文件夾。 Reverse在當前用戶沒有寫入權限的另一個文件夾中創建臨時文件,爲此它創建了一個小文件,因爲它試圖在以後從不存在的文件中讀取文件。

相關問題