2014-02-25 74 views
0

我最近遇到了SoX和PHP的一些問題。我在PHP運行命令行工具的完整的初學者,所以我儘量說明問題一樣好,我可以:Sox stats和PHP使用shell_exec

因此,我們有以下的情況:

有一個.wav文件中該文件夾[root]/demo/test.wav

我的PHP文件位於位於[root]/inc/classes.php

所以PHP看起來有點像這樣(其實是一個最小的例子)

function wav() { 
    $output = shell_exec('sox ..\demo\test.wav -n stat'); 
    var_dump($output); 
    echo "<pre>".$output."</pre>"; 
} 

所以,如果我運行該功能(如果我採取了一個非常巨大的.wav文件)它似乎「做」了一些東西,因爲瀏覽器需要很長時間來運行請求。

但我接受一切都是「NULL」

如果我改變了shell_exec命令來shell_exec('sox -help')它的工作原理。

所以我的問題是:怎麼回事?的xD

問候

+0

使用Linux?還是Windows? –

回答

1

我一直在敲打我的頭靠在牆上用這一個了。你是我能找到的唯一記錄的問題。我想要的只是mp3的持續時間。

shell_exec("sox test.mp3 -n stat") // was returning NULL 

shell_exec("sox --i -D test.mp3") // worked! 

不知道爲什麼。

遲了三個月,但這可能會節省一些時間。

+0

呵呵,謝謝。我在一段時間後自己找到了解決方案,並誠實地完全忘了這篇文章:D ... 這個問題「似乎」對我來說什麼sox返回並不總是在相同的格式。有些東西是以數組形式出現的,有些是作爲單一數值。 我相信_-n -stat_給你一個值的數組,而__ i -D_只是給你一個值。 – bquarta